2024-04-29 14:17:52 发布
网友
我认为只有在声明之后才能访问变量。 但显然,Python的名称解析开始从内到外寻找
我的问题是,就可读性而言,这是不好的做法?我想知道这可能是Pythonista的一个常识,这样我就可以从现在开始编写这种代码了
def outer(): def inner(): print x x = ‘foo’ inner()
>>> outer() >>> ‘foo’
当您调用inner()时,它开始执行。在第print x行看到变量名x。然后它查找函数inner的内部作用域,没有在那里找到变量x。然后它看外部作用域,即outer的作用域。此时已经定义了变量x(正如在inner()调用之前所做的那样),并且使用了这个变量
inner()
print x
x
inner
outer
当您调用
inner()
时,它开始执行。在第print x
行看到变量名x
。然后它查找函数inner
的内部作用域,没有在那里找到变量x
。然后它看外部作用域,即outer
的作用域。此时已经定义了变量x
(正如在inner()
调用之前所做的那样),并且使用了这个变量相关问题 更多 >
编程相关推荐