gpt4 book ai didi

python - 这个函数如何找到另一个变量的值?

转载 作者:行者123 更新时间:2023-11-28 16:27:08 25 4
gpt4 key购买 nike

代码如下:

def caller(callee):
callee()

def wrapper():

def a():
print v0

for i in range(5):
v0 = i*i
caller(a)

wrapper()

以上代码输出:

0
1
4
9
16

但是我不明白a是如何解析变量v0的。我找不到关于此语言功能的相关 python 文档。

最佳答案

函数中定义的变量范围包括其中的所有嵌套函数。所以 wrapper() 中定义的变量在 a() 中是可以访问的,因为这个函数嵌套在其中。这称为词法作用域,通常用于创建闭包。

这在 Python Resolution of Names 中有解释文档:

A scope defines the visibility of a name within a block. If a local variable is defined in a block, its scope includes that block. If the definition occurs in a function block, the scope extends to any blocks contained within the defining one, unless a contained block introduces a different binding for the name.

关于python - 这个函数如何找到另一个变量的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35642477/

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