Добавление метода, вызывающего функцию наследования - PullRequest
2 голосов
/ 27 мая 2020

Я пытаюсь добавить метод для класса, который будет вызывать другой метод, находящийся в классе наследственности. Но я получаю сообщение об ошибке, вероятно потому, что внутренний вызов функции читается как функция, а не как метод.

Ниже пример:

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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...