这是一段代码:
global episode = "Episode404"
import testing
reload (testing)
#or
python testing.py
测试.py:
def doIt():
print episode
doIt()
这让我很吃惊
# Error: invalid syntax #
我猜这是因为我试图传递一个全局变量并运行?我该如何解决这个问题?
最佳答案
下面一行是错误的:
global episode = "Episode404"
但是你也误解了global命令的概念。您需要使用它来更改在您当前工作的范围之外定义的某些变量的值。
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)
我认为这种方法比使用全局变量并试图在模块之间共享它们要好。也许你可以只使用黑客或你可能不需要的东西来做到这一点。
关于python - 在全局变量上运行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45282474/