2013-03-28 185 views
1

我的班級中的一個函數,從另一個調用函數的類

class MainFrame(wx.Frame): 
    def __init__(self,parent,ID,title): 
     wx.Frame.__init__(self, parent, ID, title, style=wx.DEFAULT_FRAME_STYLE^ wx.RESIZE_BORDER^wx.MAXIMIZE_BOX,size=(600,500)) 
     wx.Frame.CenterOnScreen(self) 
     .......... 
     .......... 
     panel1 = wx.Panel(panel, wx.ID_ANY,size=(550,200),pos=(25,150)) 
     log = wx.TextCtrl(panel1, wx.ID_ANY, size=(550,200),style = wx.TE_MULTILINE|wx.TE_READONLY|wx.HSCROLL) 

    def PanelStatus(message): 
     ............... 

我想從功能函數「PanelStatus」 初始化'調用方法Panel1的,後來在其他調用這個函數class.How怎麼做?我對編程語言很陌生,請幫我解決。

回答

1

首先,你需要給你的PanelStatus函數一個新的第一個參數self。這是因爲它是一種方法,並且方法會自動獲取作爲第一個參數傳遞的實例(名稱self是一個約定)。

然後,您可以從__init__self.PanelStatus("some message")聯繫。如果程序其他部分的其他代碼引用了MainFrame實例,則可以致電myMainFrame.PanelStatus("some other message")

+0

非常感謝你:) – Aramanethota 2013-03-28 07:23:04

0

我做了這樣的事情,它爲我工作。

class MainFrame(wx.Frame): 
    def __init__(self,parent,ID,title): 
     wx.Frame.__init__(self, parent, ID, title, style=wx.DEFAULT_FRAME_STYLE^wx.RESIZE_BORDER^wx.MAXIMIZE_BOX,size=(600,500)) 
     ....... 
     ....... 
     panel1 = wx.Panel(panel, wx.ID_ANY,size=(550,200),pos=(25,150)) 
     self.log = wx.TextCtrl(panel1, wx.ID_ANY, size=(550,200),style = wx.TE_MULTILINE|wx.TE_READONLY|wx.HSCROLL) 


    def PanelStatus(self,message): 
     self.log.AppendText(message) 

和使用self.PanelStatus( 「我的文字」)中的其他功能。