运行 关于全局变量的文件

Running file on global variables

所以这是一段代码:

global episode = "Episode404"
import testing
reload (testing)
#or
python testing.py

testing.py:

def doIt():
    print episode
doIt()

这让我很震惊

# Error: invalid syntax # 

我猜这是因为我试图传递一个全局变量 运行?我该如何解决这个问题?

我想 Python 没有办法在模块中指定对所有名称空间都是全局的变量。尝试这样声明一个变量:

import testing

global episode
episode = "Episode404"

def doIt():
    print(episode)

doIt()

Here's good example how to use variables globally and locally in Python.

下面一行是错误的:

global episode = "Episode404"

但是你也误解了全局命令的概念。您需要使用它来更改在您当前工作的范围之外定义的某些变量的值。

Andy 回答的内容有效,但不是必需的,因为您可以这样做并得到相同的结果:

episode = "Episode404"

def doIt():
    print(episode)

doIt()

global 仅当您想更改 doIt() 中的 episode 的值时才需要,并且此更改传播到 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)

我认为这种方法比使用全局变量并试图在模块之​​间共享它们要好。也许你可以只使用黑客或你可能不需要的东西来做到这一点。