gpt4 book ai didi

python - 函数内部的函数 - 每次?

转载 作者:IT老高 更新时间:2023-10-28 22:15:13 25 4
gpt4 key购买 nike

让我们有这个代码:

def big_function():
def little_function():
.......
.........

Python 文档中提到了 def 语句:

A function definition is an executable statement. Its execution binds the function name...

所以,问题是:def little_function() 每次调用 big_function 时都会执行吗?问题完全是关于 def 语句,而不是 little_function() 正文。

最佳答案

您可以使用 dis 模块检查字节码:

>>> import dis
>>> def my_function():
... def little_function():
... print "Hello, World!"
...
...
>>> dis.dis(my_function)
2 0 LOAD_CONST 1 (<code object little_function at 0xb74ef9f8, file "<stdin>", line 2>)
3 MAKE_FUNCTION 0
6 STORE_FAST 0 (little_function)
9 LOAD_CONST 0 (None)
12 RETURN_VALUE

如您所见,内部函数的代码仅编译一次。每次调用 my_function 时,它都会被加载并创建一个新的函数对象(在这个意义上,def little_function 每次执行 my_function 被调用),但这不会增加太多开销。

关于python - 函数内部的函数 - 每次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16031092/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com