Tôi có một biến toàn cục mà tôi đang sử dụng làm biến mặc định. Tùy thuộc vào những gì xảy ra trong chương trình của tôi, tôi cần có khả năng thay đổi các giá trị mặc định đó và có các thay đổi tồn tại thông qua hoạt động còn lại của mã của tôi. Tôi muốn họ thay đổi và định nghĩa ở khắp mọi nơi vì thế tôi đã sử dụng một biến toàn cục. Dưới đây là một số mã thử nghiệm cho thấy cách tôi đang cố gắng sửa đổi các biến này.Biến toàn cầu bị nhầm lẫn trong python
Khi tôi làm điều này tôi có những vấn đề sau đây ... chương trình
- Các nghĩ rằng
myGlobal
chưa được quy định tại chính. Nhưng nó có. Tại sao? - Khi tôi gọi một chương trình con sau khi tôi đã thay đổi
myGlobal
. Tôi không muốn điều đó xảy ra.
Cách thích hợp để hoàn thành những gì tôi đang cố gắng làm ở đây là gì? Ví dụ?
#!/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:])