【发布时间】:2015-02-13 00:27:09
【问题描述】:
我有这个代码:
class Item:
def __init__(self,a):
self.a=a
class Sub(Item):
def __init__(self,a,b):
self.b=b
Item.__init__(self,a)
class SubSub(Sub):
def __init__(self,a,b,c):
self.c=c
Sub.__init__(self,a,b)
obj1=Item(1)
obj2=Sub(1,2)
obj3=SubSub(1,2,3)
现在我想检查obj2 和obj3 是否是obj1 的子类以及Item 的子类的类的实例。
这是我的理解,我知道我可以使用isinstance() 来查找obj2 是否为Sub。我知道我可以使用issubclass(Sub, Item)。但是假设我不知道obj2 是什么类。
我尝试使用 issubclass(type(obj2),Item) 但这不起作用,因为 type() 返回一个我不太了解其工作原理的单独对象。这只是一个问题,尽管我认为这个问题的答案将帮助我解决我遇到的其他一些问题。
我也尝试过使用一些特殊属性来执行此操作,例如__class__,但我也不知道该怎么做。
【问题讨论】:
标签: python class inheritance python-3.4