为什么type(string)不等于"<class'str'>"?

EKo*_*ons -1 python

在Python 3中type('jjj')=="<class 'str'>",它评估为False,而在Python 2中type('jjj')=="<type 'str'>"具有相同的结果.不知道为什么会这样,所以任何帮助(甚至一点点推动)都会受到赞赏!

Ter*_*ryA 6

那是因为type函数没有返回字符串.它返回一个类型'type':

>>> type(type('hi'))
<type 'type'>
Run Code Online (Sandbox Code Playgroud)

所以你现在正在做的是将类型'type'与类型'string'进行比较,结果会产生False.

我建议使用isinstance:

>>> isinstance('hi', str)
True
Run Code Online (Sandbox Code Playgroud)