运行 关于全局变量的文件
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)
我认为这种方法比使用全局变量并试图在模块之间共享它们要好。也许你可以只使用黑客或你可能不需要的东西来做到这一点。
所以这是一段代码:
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)
我认为这种方法比使用全局变量并试图在模块之间共享它们要好。也许你可以只使用黑客或你可能不需要的东西来做到这一点。