为什么此操作返回False? (string .__ class__ ==&#34; <class'str'=“”>&#34;)

时间:2018-06-05 14:01:26

标签: python string python-3.x class boolean

我想知道为什么我无法使用

确定对象是否为字符串
string = "s"
print(string.__class__) # print(<class 'str'>)
print(string.__class__ == "<class 'str'>") # False

BTW我知道有isinstance()函数

2 个答案:

答案 0 :(得分:3)

您可以使用__name__属性:

>>>string.__class__.__name__ == 'str'
True

但是,要使用__class__,请与str作为内置对象进行比较:

>>>string.__class__ == str
True

答案 1 :(得分:3)

那些应该适用于任何字符串s:

s.__class__.__name__ == 'str'

type(s) is str

btw:我建议使用第二个,因为它更具可读性。