档案1
#file1
from tkinter import *
class UI:
def __init__(self):
self.main_window = Tk()
sam = 'TestWord'
import file2
def run(self):
self.main_window.mainloop()
def main():
ui = UI()
ui.run()
main()
文件2
#file2
from file1 import sam
print(sam)
输出
from file1 import sam
builtins.ImportError: cannot import name 'sam'
如何在课堂上导入sam?如果没有上课,我知道如何做到这一点。此外,此代码打开了两个GUI,它们必须是问题的一部分,但此时我完全迷失了。两个变量都必须是self.sam吗?所以,self.sam =' TestWord'并导入self.sam。我试过这个并没有用,但是,我可能会错过这里的细节。任何帮助将不胜感激。
答案 0 :(得分:0)
问题是import file2
不会为您运行代码。它只发生在python REPL上。
你可以做类似下面的事情,
<强> File1中:强>
from tkinter import *
class UI:
def __init__(self):
self.main_window = Tk()
sam = 'TestWord'
from file2 import foo
foo(sam)
def run(self):
self.main_window.mainloop()
def main():
ui = UI()
ui.run()
main()
<强>文件2:强>
def foo(sam):
print(sam)
答案 1 :(得分:0)
因此,导入file1时,main()
不会运行,只有在运行file1时才会运行
if __name__ == '__main__':
main()
此外,您无法访问类中的sam
,这不是文件的问题,要从类外部访问它,您需要将其设置为全局,或者使用{{1并且有一个你的类的实例。
更好的方法是让file2包含使用导入文件1的self.sam = ...
值的方法。
在没有看到您的实际用例的情况下,我无法提供任何其他方法来实现您想要的内容,但您真的不应该让它从全局访问另一个文件。