我有一个全局变量,我用它作为默认变量。根据我的程序中发生的情况,我需要能够更改这些默认值,并通过我的代码的其余操作保持更改。我希望它们随处改变和定义,因此我使用了一个全局变量。这里是一些测试代码,显示了我如何修改这些变量。Python中的全局变量混淆
当我这样做,我有以下问题......
- 该方案认为,
myGlobal
尚未在main定义。但它有 。为什么? - 当我改变
myGlobal
后,我打电话给子程序。我不希望发生这种情况。
什么是正确的方法来完成我在这里要做的事情?例子?
#!/usr/bin/python
import sys
myGlobal = "foo"
print "********************"
print "MyGlobal %s" % myGlobal
print "********************"
def main(argv):
#UnboundLocalError: local variable 'myGlobal' referenced before assignment
print '1. Printing the global again: ' + myGlobal
myGlobal = "bar"
print "2. Change the global and print again: " + myGlobal
# now call a subroutine
mySub()
# Checks for output file, if it doesn't exist creates one
def mySub():
# Why isn't the global "bar" not "foo"?
print '3. Printing the global again: ' + myGlobal
myGlobal = "black sheep"
print "4. Change the global and print again: " + myGlobal
if __name__ == "__main__":
main(sys.argv[1:])