Python 从模块导入变量只导入第一次出现的变量
在module1.py中,我有一个变量var初始化为空字符串。模块1中的函数更改此变量的值。当我从module2.py导入此变量时,它只反映函数更改它之前的初始状态,即使我确保在开始导入之前调用更改函数 模块1.pyPython 从模块导入变量只导入第一次出现的变量,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')
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
语句而不是顶级语句来创建全局变量,您有什么特别的原因吗(我认为这不管用,但它确实管用!)?