在全局变量上运行文件

4
所以这是一段代码:

所以这是一段代码:

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

testing.py:

def doIt():
    print episode
doIt()

这让我感到困惑。

# Error: invalid syntax # 

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


1
请发布完整的堆栈跟踪。我怀疑您未正确调用打印函数。请确认您正在使用Python 3或者已经从future模块中导入print_function - Anis
1
不是真的。就这些了。我正在运行Python 2.7。 - Jozef Plata
2个回答

2
下面的这行代码是错误的:
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)

我认为这种方法比使用全局变量并尝试在模块之间共享它们要更好。可能你只能使用一些骚操作或你可能不需要的东西来做到这一点。

1
是的。非常感谢! - Jozef Plata

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接