查看类型元对象是否是另一个类的实例



我想知道是否有一种方法可以查看一个类是否是基于给定对象的type对象从另一个类继承的。

假设我有如下定义的类MyList

class MyList(list):
pass

现在考虑以下内容:

>>> my_list = MyList()
>>> type(my_list).__name__
'MyList'
>>> isinstance(my_list, list)
True  # as expected
>>> isinstance(type(my_list), list)
False  # how can I get this to be True?

所以我的问题是:

  1. 查看类的类型对象是否是另一个类的实例(继承自(的Python方法是什么
  2. 你能根据一个对象的type元类实例来检索它的类吗?我会把它想象成type(my_list).class

纯粹作为一种形式上的行动。。。

解决方案是使用issubclass():

>>> class MyList(list):
...     pass
...
>>> my_list = MyList()
>>> issubclass(MyList, list)
True
>>> issubclass(my_list.__class__, list)
True

相关内容

最新更新