我想要访问模块在导入时执行的代码。访问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