我该如何检查对象的类型?

时间:2011-12-04 10:12:37

标签: python

  

可能重复:
  Python - Determine the type of an object?

我希望打印“复杂”,但没有任何事情发生,为什么?怎么做对了?

>>> c = (5+3j)
>>> type(c)
<type 'complex'>
>>> if type(c) == 'complex': print 'complex'
... 
>>> 

3 个答案:

答案 0 :(得分:5)

您可以使用isinstance

if isinstance(c, complex):

来自文档:

  

如果object参数是classinfo参数的实例,或者是(直接,间接或虚拟)子类的实例,则返回true。如果classinfo是类型对象(新样式类)并且object是该类型的对象或其(直接,间接或虚拟)子类,则也返回true。

答案 1 :(得分:2)

尝试if isinstance(c,complex): print 'complex'

答案 2 :(得分:2)

>>> c = 5+3j
>>> c
(5+3j)
>>> type(c)
<type 'complex'>
>>> complex
<type 'complex'>
>>> type(c) == complex
True
>>> isinstance(c, complex)
True
>>>

type(c) == complex意味着“这绝对是complex的实例,而不是某些子类”。 isinstance(c, complex)将包含子类。