举个例子:
def f():
myvar = None
def g():
print myvar
...
myvar = get_real_value()
g()
“myvar = None”是一种传统的(或至少是合理的)声明变量的方式,使其对g()可见吗?有没有更好的办法? (Python 2.6.x,如果相关)
答案 0 :(得分:3)
无需在g()
:
>>> def f():
... def g():
... print myvar
... myvar = 1
... g()
...
>>> f()
1
但是,如果您可以避免引用g()
中最适合的非本地变量,那么您可以通过将myvar
作为g()
的参数来执行此操作。
答案 1 :(得分:1)
您无需预先初始化变量;只需在调用g()
之前初始化它。只需删除myvar = None
行。
为清楚起见,我更喜欢将本地函数尽可能地移动到它们的调用点附近,这样函数使用的局部变量的初始化就会出现在函数本身之前。