gpt4 book ai didi

python - 内部函数访问外部函数的变量

转载 作者:太空宇宙 更新时间:2023-11-03 15:49:05 25 4
gpt4 key购买 nike

让我们假设有这个简单的代码:

def my_outer_function():
outer_var = 123
def my_inner_function():
return outer_var + 1
return my_inner_function

get_inner = my_outer_function()
get_inner()

我想知道没有任何类型的运行时错误。 outer_var - 外部函数的变量 - 仅当该函数运行时才可用,即当 my_outer_function 时它消失结束。但是当我调用get_inner()时, my_outer_function()已经结束了,所以我打赌自 my_inner_function 以来会出现运行时错误找不到outer_var .

你如何解释这一切?

最佳答案

the variable of the outer function is available only when that function is running on, i.e. it vanishes when my_outer_function ends.

这并不完全正确。该变量在 my_outer_function 的范围内可用。 my_inner_function 具有其自身声明的作用域及其父声明的作用域。

my_inner_function 引用了其自身作用域之外的变量,因此当其父级作用域不再可用时,这些引用将作为闭包绑定(bind)到 my_inner_function 。要了解有关闭包的更多信息,请参阅Can you explain closures (as they relate to Python)? (摘自保罗·鲁尼的评论)

关于python - 内部函数访问外部函数的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41474465/

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