导入后,是否可以在不同的脚本中保持同名全局变量的唯一性?

时间:2017-06-03 15:06:52

标签: python python-3.x global-variables python-import

所以我想要同时运行一些Python脚本,所以我创建了一个新的空Python脚本,只有import我的所有脚本,以便我可以用一个脚本运行所有这些脚本。但是,大多数脚本都包含全局变量名,这些名称在某些脚本中具有相同的名称,但我不希望它们相互冲突。有没有一种方法可以逐个单独地进入脚本来更改每个单个全局变量的名称,我仍然可以将所有脚本“加载”到一个文件中并共享相同的全局变量名称而不会相互冲突?

2 个答案:

答案 0 :(得分:0)

您可以创建util.py文件并在其中定义所有全局变量。现在,如果您希望更新变量名,只需要在一个文件中进行更改。

这里有一些代码:

# util.py

def init():
    global myVar
    myVar = []

在另一个档案中:

# file.py

import util

答案 1 :(得分:0)

你实际上并不需要这样做!

每个模块都有一个独立的全局范围。例如,您可以通过以下方式看到:

test.py

a = 1

def set_a(val):
    global a
    a = val

def get_a():
    return a

test_two.py

import test

a = 4
test.set_a(5)
print(a)  # 4
print(test.a)  # 5

只要您不将它们导入相同的命名空间即可。如果您这样做,如果您使用name = value将其指定在任何位置,a中的名称test将与test_two中的名称不同:

test_two.py

from test import a, set_a, get_a

print((get_a(), a))  # (1, 1)
set_a(5)
print((get_a(), a))  # (5, 1)
a = 4
print((get_a(), a))  # (5, 4)

但是如果你改变这个值,例如.append到列表,名称仍将指向相同的值,就不会发生这种情况。