[英]Call a function from within another function in Python without using class
[英]call a function from another function within the class
我的课是
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'中的函数' init '调用方法Panel1,然后再在另一个类中调用此函数。该怎么做? 我对编程语言很陌生,请帮帮我。
首先,您需要给PanelStatus
函数一个新的第一个参数self
。 那是因为它是一个方法,方法将自动获取作为第一个参数传递的实例(名称self
是一个约定)。
然后,您可以使用self.PanelStatus("some message")
从__init__
调用它。 如果程序其他部分的其他代码引用了MainFrame
实例,则可以调用myMainFrame.PanelStatus("some other message")
。
我做了这样的事情,它为我工作。
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(“ my text”) 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.