在全局变量上运行文件

时间:2017-07-24 13:53:32

标签: python python-2.7 maya

所以这是代码的一部分:

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

testing.py:

def doIt():
    print episode
doIt()

这就抛弃了我

# Error: invalid syntax # 

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

2 个答案:

答案 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.