具有全局变量的外部函数

时间:2019-10-27 21:34:17

标签: python-3.x global-variables

我想在外部文件中编写函数,因为它对于版本编辑更方便,并使用全局变量。

显然,唯一的方法是使用some_file中的import some_function(对吗?)。是否仍然可以通过这种方式使用全局变量?那是变量在主文件中声明并且可以在外部文件中直接访问?我还尝试避免在参数中传递它们,因为这会使代码变得复杂。我在考虑一些“包含”指令,但不确定在Python中是否存在。

所以主文件中的代码将是这样:

from test import test
x=1
test()

,在文件test.py中将是这样:

def test():
    global x
    print(x)

也许这只是拥有合适的编辑器的问题……有人对MacOS有要求吗?

1 个答案:

答案 0 :(得分:0)

python的import与其他语言的include相当,尤其是from some_file import *的形式,它导入了所有名称空间,包括函数中的类,类和所有全局变量。该模块或软件包。

编辑:但是,如果您要执行注释中要求的操作,仍然可以使用导入的变量来完成。例如,考虑两个文件main.pyimported.py

imported.py可能看起来像这样:

some_global_var = 1
other_var = 2

def add():
    return some_global_var + other_var

由于imported.py具有使用全局变量(而不是参数)的函数,因此没有理由一旦导入便无法更改这些变量。为此,main.py如下所示:

import imported

print(imported.add()) # 3 - because we didn't change anything yet
imported.some_global_var = 10
imported.other_var = 20
print(imported.add()) # 30 - because we redefined the imported variables that our imported function uses