2012-04-29 1 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には親があります。関数のローカル変数は、関数が存在すると消滅します。つまり、バインディングは失われますが、オブジェクトTab(それぞれのオブジェクト)への参照がオブジェクトMyFrameのライフタイム全体にわたって続くリストself.tabsにあります。

Tabは、親クラス(および/または親クラスの親)が破壊(またはTabにdestroyメソッドを呼び出すことによって)されている

ちょうど私の野生の推測まで生きるの各オブジェクト::(

+0

は、ありがとうございます。今はっきりしています。 – User007

関連する問題