所以,我很困惑。我有一个模块包含一些我在另一个模块中使用的函数。像这样导入: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