Если у меня есть два объекта, которые будут вызывать один и тот же метод, то произойдет событие, можно ли увидеть, кто из них вызвал событие?
Сделать это чище. Если у меня есть две кнопки и один метод, который вызывается, я нажимаю на них. Что я могу сделать в этом методе, чтобы увидеть кнопку щелчка, которая была нажата?
...
buttonA.Bind(wx.EVT_BUTTON ,self.methode)
buttonB.Bind(wx.EVT_BUTTON ,self.methode)
...
...
def methode(self,event)
#get the button that was clicked
Попробуй это:
...
buttonA.Bind(wx.EVT_BUTTON ,self.methode)
buttonB.Bind(wx.EVT_BUTTON ,self.methode)
...
...
def methode(self, event)
#get the button that was clicked
button = event.GetEventObject()
print button.GetLabel()
Самый простой подход - создать два отдельных метода:
buttonA.Bind(wx.EVT_BUTTON, self.method_from_A)
buttonB.Bind(wx.EVT_BUTTON, self.method_from_B)
Если эти два метода совместно используют код, то они могут оба вызвать другой вспомогательный метод.
Вместо того, чтобы называть их чем-то произвольным, как method_from_X, попробуйте выбрать имена, которые уточнят, почему случаи разные. Для имен сосредоточьтесь на "почему", а не на деталях реализации.
Если вы действительно хотите иметь один метод обратного вызова, вы можете следовать инструкциям здесь в разделе "Передача аргументов в обратные вызовы":
http://wiki.wxpython.org/Passing%20Arguments%20to%20Callbacks