我有一個全局變量,我用它作爲默認變量。根據我的程序中發生的情況,我需要能夠更改這些默認值,並通過我的代碼的其餘操作保持更改。我希望它們隨處改變和定義,因此我使用了一個全局變量。這裏是一些測試代碼,顯示了我如何修改這些變量。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:])