我是Python的新手,正在尝试获取一个对象所继承的类列表。我正在尝试使用bases属性来实现这一点,但是我没有成功。请有人帮帮我吗?
def foo(C):
print(list(C.__bases__))
class Thing(object):
def f(self):
print("Yo")
class Shape(Thing):
def l(self):
print("ain't no thang")
class Circle(Shape):
def n(self):
print("ain't no shape")
test = Circle()
foo(test)
test.__class__
,因为在他的情况下,test
是一个实例? - RocketDonkeytest.__class__
,我匆忙回答了 :) - Srikar Appalarajutest.__class__.__mro__
也应该可以工作。使用getmro
的原因是它同样处理旧式类。它首先查找__mro__
,如果没有找到,则假定该类是旧式类,并递归搜索__bases__
层次结构。如果您不需要该功能,则可以避免导入。 - senderlegetmro
比上面定义foo
更有意义。 - senderle