首页 > 解决方案 > Python - 从另一个类中销毁类实例

问题描述

我有一个程序设置了一个导航栏作为它自己的类,每个不同的页面都是它自己的类,如下所示:

class Navigation...

class MainPage...

class page2...

if __name__ == "__main__":
    global homepage
    root = Tk()
    homepage = MainPage(root)
    navigation = nav_page(root)

为了加载一个新页面,我尝试删除该类的实例,然后在函数中重新创建另一个页面,如下所示:

class Navigation...
   def __init__(self,parent):
      mainpage_button = Button(parent, text='mainpage',command=self.load_main()).pack()

      secondpage_button = Button(parent, text='2ndpage',command=self.load_2nd()).pack()

   def load_2nd(self):
     global root
     global homepage
     del homepage
     2nd_page = page2(root)

   def load_main(self):
     global root
     global 2nd_page
     del 2nd_page
     homepage = MainPage(root)

class MainPage...

class page2...

if __name__ == "__main__":
    global homepage
    root = Tk()
    homepage = MainPage(root)
    navigation = nav_page(root)

当我尝试运行它时,我得到

UnboundLocalError: local variable 'MainPage' referenced before assignment

我不知道。它在 if name== 中被引用,当我创建类时,它甚至在加载导航页面之前,它会删除类。

我添加了全球,因为我越来越绝望。我也尝试过使用类。del,但这也不起作用。

标签: pythonclassooptk

解决方案


推荐阅读