2012-04-29 48 views
0

我在写一个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) 

将通过调用add_tab持续整个主框架的续航时间(直到它被破坏)每个tab变量产生的?谢谢。

回答

3

每个变量绑定到一个对象Tab。每个Tab都有一位家长。一旦函数存在,函数本地的变量将会消失 - 也就是说,绑定会丢失,但是您可以参考列表self.tabs中的对象Tab(它们中的每一个),该对象在对象的整个生命周期中保持为MyFrame

每个对象Tab会活到父类(和/或父类的父母)被破坏(或通过调用Tab一灭法)

只是我大胆猜测::(

+0

谢谢,现在很清楚。 – User007 2012-04-29 22:55:45