Почему эта операция возвращает False?(строка .__ класс__ == "«) - PullRequest
0 голосов
/ 05 июня 2018

Мне было интересно, почему я не могу определить, является ли объект строкой, используя class

string = "s"
print(string.__class__) # print(<class 'str'>)
print(string.__class__ == "<class 'str'>") # False

Кстати, я знаю, что есть функция isinstance ()

Ответы [ 2 ]

0 голосов
/ 05 июня 2018

Они должны работать для любой строки s:

s.__class__.__name__ == 'str'

type(s) is str

Кстати: я бы предложил использовать вторую, так как она более читаема.

0 голосов
/ 05 июня 2018

Вы можете использовать атрибут __name__:

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

Однако, чтобы использовать __class__, сравните с str в качестве встроенного:

>>>string.__class__ == str
True
...