确定属性来自哪个父类

时间:2015-07-14 22:07:35

标签: python

为了给出一些背景故事,我正在一个相当大的代码库中工作,它可能会或者可能没有在其创建中做出一些可疑的架构决策,因此我经常需要弄清楚哪个父类的属性或函数来自。

这段代码可以实现,但似乎有更多的pythonic方法可以做到这一点:

def find_attribute_class(model, attribute):
    return [m for m in model.mro() if attribute in m.__dict__]

示例:

class Bar(object):
    junk = {}

class Foo(Bar):
    trunk = []

find_attribute_class(Foo, 'junk') # returns [Bar]
find_attribute_class(Foo, 'trunk') # returns [Foo]

0 个答案:

没有答案