I am looking for the way how to implement an object that has overwritable event handlers.
Here's a non-working code that I'd like to adjust so that it is working:
class Button(object):
def __init__(self, id):
self.id = id
pass
def trigger_on_press(self):
self.on_press()
def trigger_on_release(self):
self.on_release()
def on_press(self):
# empty handler
print("Just an empty on_press handler from id=%s" % self.id)
pass
def on_release(self):
# empty handler
print("Just an empty on_release handler from id=%s" % self.id)
pass
btn = Button("btn")
btn.trigger_on_press()
def custom_handler(self):
print("Event from id=%s" % self.id)
btn.on_press = custom_handler
btn.trigger_on_press()
How can I overwrite the default empty on_press method for that particular instance so that it is properly passed the self
reference?