我想要訪問模塊在導入時執行的代碼。訪問python模塊代碼
可視化源代碼或編輯它不是這裏的問題。我想知道這些指令的存儲位置。
例
module.py
def func():
print 'func'
print 'module'
的Python控制檯
>>> import module
module
>>> import dis
>>> dis.dis(module)
Disassembly of func:
0 LOAD_CONST 1 ('func')
3 PRINT_ITEM
4 PRINT_NEWLINE
5 LOAD_CONST 0 (None)
8 RETURN_VALUE
>>> dir(module)
['__builtins__', '__doc__', '__file__', '__name__', '__package__', 'func']
我在哪裏可以找到<function>
對象,或func_code或任何其存儲print 'module'
指令?
@pokoli,沒有關係 - 這不是一個奎因,它試圖訪問字節碼。 – Phillammon 2014-08-29 13:33:49
'print'module''不存在於任何對象中。它在模塊定義時執行,但不是模塊的*部分*。在包含定義模塊的代碼的文件和執行該文件產生的'module'對象之間存在區別。 – chepner 2014-08-29 13:37:39
@chepner:哦,好的,謝謝!所以如果我想深入一點,我是否應該打開一個不同的問題:如何掛鉤導入內建以獲取在導入時執行的代碼的跟蹤? (我是新來的) – Centime 2014-08-29 13:42:36