在Python中,如果我在父函数中有一个子函数,那么每次调用父函数时子函数是否都会“初始化”(创建)?将一个函数嵌套在另一个函数中是否会产生任何性能开销?
代码对象是预编译的,因此该部分没有开销。函数对象在每次调用时构建 - 它将函数名称绑定到代码对象,记录默认变量等。
执行摘要:它不是免费的。
>>> from dis import dis
>>> def foo():
def bar():
pass
return bar
>>> dis(foo)
2 0 LOAD_CONST 1 (<code object bar at 0x1017e2b30, file "<pyshell#5>", line 2>)
3 MAKE_FUNCTION 0
6 STORE_FAST 0 (bar)
4 9 LOAD_FAST 0 (bar)
12 RETURN_VALUE
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)