在Python 3 type('jjj')=="<class 'str'>"
中,它评估为False
,而在Python 2中type('jjj')=="<type 'str'>"
具有相同的结果。不知道为什么会发生这种情况,所以任何帮助(甚至是一点推动)都会受到赞赏!
答案 0 :(得分:6)
那是因为type
函数没有返回字符串。它返回一个类型&#39;:
>>> type(type('hi'))
<type 'type'>
所以你现在正在做的是比较类型&#39;类型&#39;到一个类型&#39;字符串&#39;,其结果为False
。
我建议使用isinstance
:
>>> isinstance('hi', str)
True
答案 1 :(得分:1)
贝壳会引起混乱。当其他人打印类型的表示时,有些人会显示类型名称。
作为插图
python shell
>>>type('jj')
<class 'str'>
IPython的
In [68]: type('a')
Out[68]: str
这里使用了两个字符串:
In [69]: str.__name__
Out[69]: 'str'
In [70]: repr(str)
Out[70]: "<class 'str'>"
如上所述isinstance
是测试类型的好方法。