所以这是代码的一部分:
global episode = "Episode404"
import testing
reload (testing)
#or
python testing.py
testing.py:
def doIt():
print episode
doIt()
这就抛弃了我
# Error: invalid syntax #
我猜这是因为我试图传递一个全局变量并运行?我该如何解决这个问题?
答案 0 :(得分:2)
以下行错误:
global episode = "Episode404"
但您也误解了全局命令的概念。您需要使用它来更改在您当前工作的范围之外定义的某个变量的值。
Andy回答的是什么,但没有必要,因为你可以用同样的结果做到这一点:
episode = "Episode404"
def doIt():
print(episode)
doIt()
全局只有在你想要更改doIt()内部剧集的值时才需要这里,这个变化会在doIt()范围之外传播,如下所示:
episode = "Episode404"
def doIt():
global episode
print(episode)
episode = "New Episode"
doIt()
print(episode)
,输出结果为:
"Episode404"
"New Episode"
如果你真的需要使用不同的模块,为什么不把这一集作为doIt()的参数传递?
将它放在您的testing.py
上def doIt(episode):
print(episode)
然后将主要代码更改为:
from testing import doIt
episode = "Episode404"
doIt(episode)
我认为这种方法比使用全局变量并尝试在模块之间共享更好。也许你只能使用你可能不需要的黑客或东西来做到这一点。
答案 1 :(得分:0)
我认为Python没有办法在模块中指定一个对所有命名空间都是全局的变量。尝试以这种方式声明变量:
{
black: 5,
orange: 2,
green: 8
}
Here's good example how to use variables globally and locally in Python.