如何使用tkinter在不同文件中使用变量

问题描述

所以我写了一个tkinter程序,一切正常,万岁!但是整个程序是写在一个大的,混乱的文件中的,并且因为它是如此的有组织,所以很难维护。我想通过创建函数并将这些函数存储在需要使用它们的单独的.py文件中来清理程序。

我的主文件是tkinter程序,显然是一个连续循环。该程序接受来自GUI的用户输入,并执行带有变量的代码,这些变量根据用户输入的内容而变化(在他们按下按钮之后)。尽管当我尝试使用在tkinter循环中获取的变量时,却无法在其他.py文件中使用这些变量。

要确切说明代码的工作方式:用户将变量键入GUI,用户按下提交按钮,记录变量,并使用这些变量执行代码,所有这些都在tkinter主循环内。

如何在多个.py文件之间共享tkinter循环中的变量,以便将代码组织到单独的文件中?

解决方法

将python文件导入另一个文件时,可以使用第一个文件中编写的代码。

例如:

first.py

def print_something(something):
    print(something)

second.py

import first

print_something("hello")

这将打印“ hello”。

因此,如果循环在一个文件中运行,则可以在不同文件中编写的函数中使用文件中的变量。

之所以会发生这种情况,是因为在导入文件时,该文件中的所有代码都会被执行,因此该文件中的每个函数都可以在从中导入文件时使用。

这就是为什么在要导入的文件末尾使用

if __name__ == "__main__":
    # do something when this file is run
    # and not imported

TL; DR变量不会在文件中传递,函数将在主文件中解释。