我怀疑我遇到了 Python 的限制,但我只是想确保......
GLOBAL_VAR = "foo"
def printVar(myVar=GLOBAL_VAR):
print myVar
def changeVar(newVar):
global GLOBAL_VAR
GLOBAL_VAR = newVar
printVar()
OUTPUT: foo
changeVar('bar')
print GLOBAL_VAR
OUTPUT: bar
printVar()
OUTPUT: foo
为什么最后一个输出不是“bar”?
因为在myVar=GLOBAL_VAR
定义函数时会评估赋值- 当时GLOBAL_VAR
是"foo"
.
你可以像这样改变你的功能:
def printVar(myVar=None):
if(myVar is None):
myVar = GLOBAL_VAR
print myVar
这样它总是会打印当前的值 GLOBAL_VAR
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句