考虑该计划:
def wrap():
print(66)
print(77,77)
wrap()
dis模块(3.5.2)报告此代码表示:
1 0 LOAD_CONST 0 (<code object wrap at 0x7f9d3b538c90, file "<dis>", line 1>)
3 LOAD_CONST 1 ('wrap')
6 MAKE_FUNCTION 0
9 STORE_NAME 0 (wrap)
4 12 LOAD_NAME 1 (print)
15 LOAD_CONST 2 (77)
18 LOAD_CONST 2 (77)
21 CALL_FUNCTION 2 (2 positional, 0 keyword pair)
24 POP_TOP
5 25 LOAD_NAME 0 (wrap)
28 CALL_FUNCTION 0 (0 positional, 0 keyword pair)
31 POP_TOP
32 LOAD_CONST 3 (None)
35 RETURN_VALUE
这个编译的字节码包括两个CALL_FUNCTION操作,但我在代码中计算了三个函数调用。为什么不打印(66)?
答案 0 :(得分:1)
它位于附加到函数wrap
的代码对象中。试试dis(wrap)
。