首页 > 解决方案 > 添加一个调用继承函数的方法

问题描述

我正在尝试为一个类添加一个方法,它将调用继承类中的另一个方法。但是我遇到了一个错误,可能是因为内部函数调用被读取为函数而不是方法。

下面是一个例子:

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 中可能吗?

标签: pythonclassmethods

解决方案


推荐阅读