Python 获取类的所有方法,但不获取超类的方法

Python 获取类的所有方法,但不获取超类的方法,python,class,python-3.x,Python,Class,Python 3.x,如何获得类实例的方法,而不是其超类的方法 例如: class A: def a(self): pass class B(A): def b(self): pass def c(self): pass d = B() 我想要一种从d获取b和c的方法,但不是a。我尝试使用dir(d),但它列出了a、b和c,而不仅仅是b和c,通过\u class\u属性在类本身上使用: vars(d.__class__) 或用于检索类:

如何获得类实例的方法,而不是其超类的方法

例如:

class A:
    def a(self):
        pass

class B(A):
    def b(self):
        pass

    def c(self):
        pass

d = B()
我想要一种从
d
获取
b
c
的方法,但不是
a
。我尝试使用
dir(d)
,但它列出了
a
b
c
,而不仅仅是
b
c
,通过
\u class\u
属性在类本身上使用:

vars(d.__class__)
或用于检索类:

vars(type(d))
这将为您提供一个字典(特别是
mappingproxy
),您始终可以通过调用字典上的
list()
来获取名称:

>>> vars(type(d))
mappingproxy({'__module__': '__main__', 'b': <function B.b at 0x1028a7378>, 'c': <function B.c at 0x103168598>, '__doc__': None})
>>> list(vars(type(d)))
['__module__', 'b', 'c', '__doc__']
>变量(类型(d))
映射代理({'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
>>>列表(变量(类型(d)))
[“模块”、“b”、“c”、“文档”]