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”、“文档”]