Я пытаюсь добавить метод для класса, который будет вызывать другой метод, находящийся в классе наследственности. Но я получаю сообщение об ошибке, вероятно потому, что внутренний вызов функции читается как функция, а не как метод.
Ниже пример:
class ListItems():
def do_something(self):
print('doing')
class TargetClass(ListItems):
pass
def external_function(self):
print('i want to do something special')
self.do_something()
setattr(TargetClass, 'external_function', classmethod(external_function))
target = TargetClass()
target.external_function()
Ошибка:
TypeError: do_something() missing 1 required positional argument: 'self'
Я знаю, что это своего рода метапрограммирование, но я не нашел, как это реализовать. Возможно ли в Python?