У меня есть класс с именем WxFrame, который создает фрейм wxPython. Я добавил метод createRunButton, который получает self и pydepp, который является объектом класса PyDEPP
import wx
class WxFrame(wx.Frame):
def __init__(self, parent, title):
super(WxFrame, self).__init__(parent, title=title)
self.Maximize()
self.Show()
def createRunButton(self,pydepp):
#pydepp.run()
self.runButton = wx.Button(self, label="Run")
self.Bind(wx.EVT_BUTTON, pydepp.run, self.runButton
Это класс PyDEPP:
class PyDEPP:
def run(self):
print "running"
Я создаю его и запускаю с:
import wx
from gui.gui import WxFrame
from Depp.Depp import PyDEPP
class PyDEPPgui():
"""PyDEPPgui create doc string here ...."""
def __init__(self,pydepp):
self.app = wx.App(False)
##Create a wxframe and show it
self.frame = WxFrame(None, "Cyclic Depp Data Collector - Ver. 0.1")
self.frame.createRunButton(pydepp)
self.frame.SetStatusText('wxPython GUI successfully initialised')
if __name__=='__main__':
#Launch the program by calling the PyDEPPgui __init__ constructor
pydepp = PyDEPP()
pydeppgui = PyDEPPgui(pydepp)
pydeppgui.app.MainLoop()
Я получаю ошибку при запуске приведенного выше кода:
TypeError: run () принимает ровно 1 аргумент (2 дано)
Однако, если я закомментирую привязку и раскомментирую строку pydepp.run (), тогда она будет работать нормально.
Ответ очевиден, я уверен, но я никогда не изучал кодирование CompSci или OO.