我对立法会的规则在这里如何适用感到困惑。我 了解Local可以位于函数或类方法内部,例如 例子。封闭可以是它的封闭函数,例如,如果函数 被包装在另一个函数中。全局是指最上面的 执行脚本本身的级别,内置的是特殊名称 那条Python是为自己准备的。我只是不明白它在这里是如何应用的,也不明白为什么输出是它所需要的是的。谢谢你知道吗
a = 'global'
def outer():
def len(in_var):
print('called my len() function: ')
l = 0
for i in in_var:
l += 1
return l
a = 'local'
def inner():
global len
nonlocal a
a += ' variable'
inner()
print('a is', a)
print(len(a))
outer()
print(len(a))
print('a is', a)
输出
('a is', 'local')
called my len() function:
5
15
('a is', 'global variable')
我得到了下面3.4.2的结果
对于解释,实际上您已经获得了几乎所有重要的细节,但关键点是
nonlocal
语句导致标识符引用最近封闭范围中以前绑定的变量,这意味着inner()
中的a
引用并影响a = 'local'
,因此在此之后;print('a is', a)
使用aslocal variable
,长度为14。但是在全局范围内a = 'global'
仍然有效。你知道吗你能分享一下你的环境细节吗?我们可以调查一下其中的差异?你知道吗
相关问题 更多 >
编程相关推荐