这些变量是否会在主框架的整个生命周期内存在?

时间:2012-04-29 02:33:44

标签: python tkinter

我正在写一个Tkinter程序。主要类是MainFrame()

class MainFrame(Frame):

    def __init__(self, master=None):

        Frame.__init__(self, master)
        self.grid()

        # sets up the tab bar
        self.tabbar = TabBar(self, 'File Tabe Bar')
        self.tabs = []
        self.add_tab(self.tabbar, 'Hello Tab') # add a new tab to self.tabs
        self.tabbar.pack()  # make it visible

    def add_tab(self, parent, name='Default'):
        tab = Tab(parent, name)
        self.tabs.append(tab)

通过调用tab创建的每个add_tab变量是否会在主框架的整个生命周期内持续存在(直到它被销毁)?感谢。

1 个答案:

答案 0 :(得分:3)

每个变量都绑定到一个对象Tab。每个Tab都有一个父级。一旦函数存在,函数的局部变量就会消失 - 也就是说,绑定会丢失,但你可以在列表Tab中继续引用对象self.tabs(每个)在对象MyFrame的整个生命周期中。

每个对象Tab将一直存在,直到父类(和/或父类的父类)被销毁(或通过在Tab上调用destroy方法)

只是我疯狂的猜测:(