我希望打印“复杂”,但没有任何事情发生,为什么?怎么做对了?
>>> c = (5+3j)
>>> type(c)
<type 'complex'>
>>> if type(c) == 'complex': print 'complex'
...
>>>
答案 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)
将包含子类。