所以,我很困惑。我有一個模塊包含一些我在另一個模塊中使用的函數。像這樣導入:Python - 將全局變量賦值給函數返回需要函數爲全局變量?
from <module> import *
在我的模塊裏面,有一些函數的目的是在主程序中設置全局變量。
main.py:
from functions import *
bar = 20
print bar
changeBar()
print bar
functions.py:
def changeBarHelper(variable):
variable = variable * 2
return variable
def changeBar():
global bar
bar = changeBarHelper(bar)
現在,這是一種簡化,但它是產生同樣的結果的最少的代碼:
Traceback (most recent call last):
File "/path/main.py", line 5, in
changeBar()
File "/path/functions.py", line 7, in changeBar
bar = changeBarHelper(bar)
NameError: global name 'bar' is not defined
提示:不要使用全局變量。他們是一個糟糕的主意。這是一個很好的例子。他們很難使用。所以不要使用它們, – 2010-07-29 03:21:27
全局變量是邪惡的。導入*是邪惡的。邪惡會引起混亂。 – 2010-07-29 03:25:58