Python获取类的直接属性

时间:2015-03-05 10:45:04

标签: python

说我有课:

class Foo(Parent):

    a = 1
    b = 2

    def bar(self, x):
        pass

我想列出其所有属性,我找到了inspect

import inspect
inspect.getmembers(Foo)

但这会提供Foo的所有属性,包括来自Parent的属性,但我只想要abbar

2 个答案:

答案 0 :(得分:3)

有一种方法,但它很脏,你必须过滤掉__module____doc__之类的内容:

Foo.__dict__

答案 1 :(得分:2)

但是在父上定义的属性是子项的直接属性。那是继承如何运作的,也是一个基本原则。该对象不知道或关心它们的定义位置。

如果您需要以某种方式解决这个问题,一种方法可能是获取父项的属性列表,并从子项的属性列表中减去它们。但你真的不应该这样做。