Мне было интересно, можно ли добавить метод к существующему классу, перегрузив уже существующий метод. Я знаю, что могу использовать setattr () для добавления функции к классу, однако перегрузка не работает.
В качестве примера я хотел бы добавить к классу
class foo:
def hello(self):
print("hello")
Следующая функция, перегружающая «привет»
def hello2(self,baa):
self.hello()
print(str(baa))
видно, что это работает
setattr(foo,"hello2",hello2)
test = foo()
test.hello()
test.hello2("bye")
но я хотел бы иметь возможность называть это так:
test.hello("bye")
Есть ли способ сделать это? РЕДАКТИРОВАТЬ: Спасибо всем за ответы! Для меня важно, что я действительно могу перегрузить, а не только заменить существующий метод. Я изменил свой пример, чтобы отразить это!
Ура!