在python中获取基类类型
是否有一种替代方法可以检查对象是否从类继承?是:在python中获取基类类型,python,Python,是否有一种替代方法可以检查对象是否从类继承?是:isinstance(obj,Klass) type()返回类型对象。a是实际的类,而不是类型您的答案似乎与OP在问题中所说的相矛盾!?我刚刚开始进行类型检查,所以我对任何评论都感兴趣。你确定类型(c)=类型(d)吗?type(c)和type(d)都返回一个类实例类型,所以它们必须相等。我想我们应该在这里使用isinstance。您可以通过创建类x:pass和z=x()来确认这一点,在类x和类a之间没有继承,但是您仍然会发现类型(z)==type(
isinstance(obj,Klass)
type()
返回类型对象。a是实际的类,而不是类型您的答案似乎与OP在问题中所说的相矛盾!?我刚刚开始进行类型检查,所以我对任何评论都感兴趣。你确定类型(c)=类型(d)吗?type(c)
和type(d)
都返回一个类实例
类型,所以它们必须相等。我想我们应该在这里使用isinstance
。您可以通过创建类x:pass
和z=x()
来确认这一点,在类x
和类a
之间没有继承,但是您仍然会发现类型(z)==type(c)
返回True。以上是针对Python 2.7.8的。在Python 3.4.1中,type(c)
和type(d)
将返回class'type'
,这也将导致True
结果。但是它并没有说c
和d
属于同一类型,在Python3.51中它返回False。
class a:
pass
class b(a):
pass
c = b()
type(c) == a #returns False
>>> class a:
... pass
...
>>> class b(a):
... pass
...
>>> c = b()
>>> d = a()
>>> type(c) == type(d)
True