モジュールを検査使用

I.はじめに

検査の4つの主要モジュールが使用します。

1.かどうかモジュールフレームタイプ検出機能、等

2.ソースを取得

3.クラスまたは関数のパラメータ情報

4.解析スタック

第二に、使用

名前とデフォルト値Pythonの関数のパラメータを取得し、名前のタプルを返し
inspect.getfullargspecを(FUNC) 

、最も外側のために、レコードの発信者リストのスタックフレームを返し、それぞれには、発信者リストに戻り、スタック上の最後の1発信者層 
inspect.stack(コンテキスト= 1)
結果inspect.stack()の呼び出しは、層の数が変化異なります
スタック = inspect.stack()
 印刷(スタック)
 [FrameInfo(フレーム= <0x000001F3A7201C88 ATオブジェクトフレーム>、
#1 / PycharmProjects /:ファイル名=」Dをフラスコ/ flask_demo / app.py ' 
#1 LINENO = 34であり、関数=' <Module1の> ' 
#1 code_context = ['スタックinspect.stack =()\ N- ']、インデックス= 0)] 

DEF RUN():
    スタック = inspect.stack()
     プリント(スタック)
RUN() 
[FrameInfo(フレーム= <0x0000019BD0706CA8 ATオブジェクトフレーム>、
#1 のファイル名= 'D:/PycharmProjects/flask/flask_demo/app.py'、
#1 LINENO = 43は、関数であります= 'RUN'、  code_context = [ 'スタック= inspect.stack()\ n ']、インデックス= 0)、 FrameInfo(フレーム= <0x0000019BCE31FA48のフレームオブジェクト>、
#1 のファイル名=' D:/PycharmProjects/flask/flask_demo/app.py' 、LINENO = 50、関数= '<モジュール>'、code_context = [ 'ラン()\ n']、インデックス= 0)] 

デフ人():
     DEF 実行():
        スタック = inspect.stack()
         プリント(スタック)
     戻りラン()
人() 
[FrameInfo(フレーム、ファイル名= <0x0000017020FCE048のフレームオブジェクト> = 'D:/PycharmProjects/flask/flask_demo/app.py'、LINENO = 58、関数= 'ラン'、code_context = [ 'スタック= inspect.stack()\ n']、インデックス= 0)、FrameInfo(ファイル名フレーム= <0x00000170202FB808のフレームオブジェクト> = 'D:/PycharmProjects/flask/flask_demo/app.py'、LINENO = 60、関数= '人'、code_context = [ '戻りラン()\ n'] 、インデックス= 0)、 FrameInfo(フレーム= <0x000001701E06FA38のフレームオブジェクト>、ファイル名= 'D:/PycharmProjects/flask/flask_demo/app.py'、LINENO = 61、関数= '<モジュール>'、code_context = [ '人()の\ n']、インデックス= 0)]

 

おすすめ

転載: www.cnblogs.com/angelyan/p/11078694.html