Python 在多个文件中导入类
我在谷歌上找不到解决方案。。。 所以我正在用python编程一个GUI,其中有两个窗口:一个主窗口和一个临时窗口,允许进行一些更改。主窗口位于main.py中,另一个位于tmp.py中。 在临时窗口中,我需要一个按钮,该按钮允许我返回主窗口。。这意味着我必须从tmp.py调用main.py中的窗口。 因此,在main.py中,我有: 导入tmp 我认为tmp.py推杆不正确: 进口干管 因为它会重新定义同一个类。。。那么你认为正确的程序应该是什么呢。。。我希望我说得够清楚,这不是那么容易描述的。。。这可能就是我无法在谷歌上找到解决方案的原因 因此,基本上代码应该是: 在main.py中Python 在多个文件中导入类,python,class,tkinter,Python,Class,Tkinter,我在谷歌上找不到解决方案。。。 所以我正在用python编程一个GUI,其中有两个窗口:一个主窗口和一个临时窗口,允许进行一些更改。主窗口位于main.py中,另一个位于tmp.py中。 在临时窗口中,我需要一个按钮,该按钮允许我返回主窗口。。这意味着我必须从tmp.py调用main.py中的窗口。 因此,在main.py中,我有: 导入tmp 我认为tmp.py推杆不正确: 进口干管 因为它会重新定义同一个类。。。那么你认为正确的程序应该是什么呢。。。我希望我说得够清楚,这不是那么容易描述的。
import tkinter as tk
import tmp
class MainStr(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self._frame = None
self.switch_frame(StartPage)
def switch_frame(self,frame_class):
new_frame = frame_class(self)
if self._frame is not None:
self._frame.destroy()
self._frame = new_frame
self._frame.pack()
class StartPage(tk.Frame):
def __init__(self,master):
tk.Frame.__init__(self,master)
chbtn = tk.Button(self,text='Tmp page',command=lambda:master.switch_frame(tmp.page))
chbtn.grid(column=0,row=0)
a = MainStr()
a.mainloop()
在tmp.py中
import tkinter as tk
import main
class page(tk.Frame):
def __init__(self,master):
tk.Frame.__init__(self,master)
chbtn = tk.Button(self,text='Home page',command=lambda:master.switch_frame(main.StartPage))
chbtn.grid(column=0,row=0)
非常感谢我将创建一个名为
startpage.py
的新文件,并将您的startpage类放入其中。然后可以从main.py和tmp.py导入startpage.py。完成此操作后,可以从tmp.py中删除import main
语句。我将创建一个名为startpage.py
的新文件,并将startpage类放入其中。然后可以从main.py和tmp.py导入startpage.py。完成此操作后,您可以从tmp.py中删除import main
语句。您可以更改项目结构,使所有内容都包含在main.py
中,除此之外,还需要更多的建议来查看您的代码的外观和结构。对不起,您是对的。。。我试图简化代码,希望现在更清晰。。。如果您有大型项目,那么将所有内容都放在一个文件中太麻烦了。谢谢您发布代码,我现在有一个答案,发布在下面。您可以更改项目结构,使所有内容都包含在main.py
,以及其他内容中,但是更多的建议需要你去看看你的代码是什么样子,它的结构是怎样的。。。我试图简化代码,希望现在更清晰。。。如果你有大型项目,把所有东西都放在一个文件里太麻烦了。谢谢你发布代码,我现在有一个答案给你,发布在下面