在类或其父类上获取方法

时间:2016-06-08 17:15:04

标签: python

我需要获取类的方法,或者如果类没有方法,则需要获取其最接近的父方法。 另一种说法是找到通过在该类的实例上调用方法来调用的方法。

这样做的最佳方式是什么?

(我将用我目前的解决方案回答这个问题,我觉得这不是最优的)

1 个答案:

答案 0 :(得分:1)

类上的属性查找已经搜索基类,不需要额外的代码。只是做:

@classmethod
def _init_args(cls):
    return getargspec(cls.__init__).args[1:]

如果你只在新式类(它是Python 3中唯一的类)上使用它,你总会在继承树的某处找到__init__方法,因为{{1有一个(并且所有新式类都有object作为它们的最终基类)。