我只是试着测试:
if type(model_lines) == 'str':
turn into a list using split
基于:
In [196]: type('a')
Out[196]: str
然而,对于x,一个字符串:
In [193]: if type(x) == 'str':
print 'string'
.....:
In [195]: if type(x) == type('a'):
print 'string'
.....:
string
我很好奇为什么我不能使用此输出来检查类型,它看起来更清晰,更快速。类型实际返回的内容是什么,不允许通过返回显示进行检查?
答案 0 :(得分:4)
因为,type()
返回对象的类,而不是类的字符串名称,因此,如果你执行类似下面的操作,它将起作用 -
>>> if type('abcd') == str:
... print("Blah")
...
Blah
>>> type('abcd')
<class 'str'>
如上所述,我检查了type('abcd')
对str
课程的返回,而不是字符'str'
。
如果你想要类的字符串表示,使用tpye(<something>).__name__
来获取类的字符串名称,虽然这不是你需要的,只是为了你的信息。示例 -
>>> type('abcd').__name__
'str'
答案 1 :(得分:-1)
因为http://localhost:8080/igloo
也可以产生unicode实例。您可以通过查看type('a')
的输出来断言。