У меня есть класс, который предоставляет два метода.Эти методы на самом деле являются визуальным синтаксическим сахаром, они в конечном итоге указывают на один и тот же код, который ведет себя по-разному, в зависимости от полезной нагрузки, которую он получает:
class Action:
def on(self):
self.action(1)
def off(self):
self.action(2)
def action(self, payload):
# a long function which does many things and uses the payload from on() and off()
print(payload)
a = Action()
a.on()
a.off()
Есть ли способ определить on()
и off()
так, чтобыони указывают на один и тот же код (тот, что в action()
), который будет вести себя по-разному в зависимости от имени метода, который был вызван?
Я, конечно, мог передать действие ввызов:
class Action:
def action(self, what):
payload = 1 if what == 'on' else 0
# a long function which does many things and uses the payload from on() and off()
print(payload)
a = Action()
a.action('on')
a.action('off')
но я хочу сохранить структуру on / off методов класса.