如何检查对象类型?

0 投票
3 回答
657 浏览
提问于 2025-04-17 07:39

可能重复的问题:
Python - 如何确定一个对象的类型?

我想要打印出'complex',但是没有任何反应,为什么呢?我该怎么做才能正确实现呢?

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

3 个回答

2

试试这个代码:if isinstance(c,complex): print 'complex'

。意思是,如果变量c是一个复数,就打印出'complex'这个字样。

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) 则会把所有的子类也包括在内。

5

你可以使用 isinstance 这个函数:

if isinstance(c, complex):

根据文档的说明:

如果对象是某个类的实例,或者是这个类的子类(不管是直接的、间接的还是虚拟的),那么就返回真(True)。如果提供的类信息是一个类型对象(新式类),而对象是这个类型的实例或者是它的子类(同样不管是直接的、间接的还是虚拟的),也会返回真(True)。

撰写回答