函数从模块中继承......为什么不变量?

时间:2017-03-11 04:35:28

标签: python python-3.x module

假设您在模块中定义函数(def func)和变量(var =)。

当你将该模块导入main.py时,该函数会继承(即可以使用)但该变量不会延续(即你必须在main.py中重新分配var才能使用它在main.py)。

这是否有原因发生?并且有解决方法吗?

1 个答案:

答案 0 :(得分:0)

将导入模块范围中的所有函数和变量。如果变量已初始化或分配给函数内部,则在执行该函数之前,您可能看不到该值。要确保获得变量的最新值,您可能必须使用Gemfile而不仅仅是# Gemfile platform :mswin, :mingw, :x64_mingw do gem "tzinfo-data" gem "win32_api" end

我们假设您有两个源文件t1.py和t2.py

module_name.variable_name

variable_name

t1.py

v1 = 10

def f1():
    global v1
    v1 = 11

如果你运行t2.py,你仍会看到10.但是如果你改变t2.py如下:

t2.py

你会看到11。

还有一个额外的转折点。如果v1是列表或字典(或对象),则不需要额外的from t1 import f1, v1 f1() print(v1) 限定符。它们通过引用访问,因此即使没有它,您也会看到该值。