Python 从模块导入变量只导入第一次出现的变量

Python 从模块导入变量只导入第一次出现的变量,python,tkinter,python-import,Python,Tkinter,Python Import,在module1.py中,我有一个变量var初始化为空字符串。模块1中的函数更改此变量的值。当我从module2.py导入此变量时,它只反映函数更改它之前的初始状态,即使我确保在开始导入之前调用更改函数 模块1.py class App(Frame): global nums nums = [] def __init__(self, parent): Frame.__init__(self, parent, background='lightgreen')

在module1.py中,我有一个变量var初始化为空字符串。模块1中的函数更改此变量的值。当我从module2.py导入此变量时,它只反映函数更改它之前的初始状态,即使我确保在开始导入之前调用更改函数

模块1.py

class App(Frame):
    global nums
    nums = []
    def __init__(self, parent):
        Frame.__init__(self, parent, background='lightgreen')
        self.parent = parent
        self.vcmd = parent.register(self.validate)
        self.centerWindow()
        ............
这就是它被同一类中的函数更新的地方

nums.append(self.b_eq)

然而,在导入nums时,我仍然得到一个空数组Python模块充当单例。如果要更改该值,可以让函数返回一个结果,然后调用该函数。或者,您可以在Module1中创建一个类并实例化一个对象。从这里,您可以根据需要设置值。

您能否澄清全局变量中的值类型?它是字符串(如文本所示)还是列表(如代码所示)?如何在第二个模块中导入变量?使用模块1中的
导入nums
导入模块1
(然后访问
模块1.nums
)?是否有理由使用全局变量而不是类变量(甚至是实例变量)?在类声明中使用
global
语句而不是顶级语句来创建全局变量,您有什么特别的原因吗(我认为这不管用,但它确实管用!)?