我对Python何时评估变量感到困惑。例如,如果我执行以下操作:
p=4
def g():
return p
p=5
print g()
我得到的是5,所以在g
的定义中,变量p
仍然没有被计算。只有在调用g
时才会计算。
但是如果我这样做:
def make_fun():
p=5
def f():
return p
return f
f=make_fun()
p=6
print f()
我得到了5。为什么f
不包含未求值的变量p
?我想要清楚地知道变量何时被求值。