我需要这个小片段来输出“这是一个字符串”(我需要myVar才能满足条件是str)
myVar = 'some-string'
if myVar is str:
print('this is a string')
else:
print('this is NOT a string')
但是当我运行它时,它会一直输出“这不是字符串”。 我不明白,有人可以指出我做错了什么以及如何解决?
我也尝试过:
myVar = str('some-string')
if myVar is str:
print('this is a string')
else:
print('this is NOT a string')
它也不起作用。
我不能使用isinstance()检查任何东西,我必须保持条件
if myVar is str:
,此条件必须为True。
我也尝试过这个:
if 'some-string' is str:
print('this is a string')
else:
print('this is NOT a string')
这还会输出“这不是字符串”
我不知道该怎么做才能满足这种条件
答案 0 :(得分:2)
两种方式:
if type(myVar) is str:
和
if isinstance(myVar, str):
答案 1 :(得分:0)
您的检查不正确,str
是类type
的对象,可以创建class str
的实例,正确的检查是:
myVar = str('some-string')
if isinstance(myVar,str):
print('this is a string')
else:
print('this is NOT a string')
以同样的方式给class A
这张支票:
if x is A
不正确
定义类将创建类type
的特殊对象,该对象负责创建已定义类的实例,这就是为什么您需要使用isinstace()
或issubclass()
来使用此特殊对象的原因以及用于回答查询的对象。因为简单的is
会检查对象x是否为对象A,但这不是真的。
答案 2 :(得分:0)
如果要检查对象是否为字符串(或与此相关的任何类型),请使用untracked files:
(use "git add <file>..." to include in what will be committed)
../.merge_file_1fRTco
../.merge_file_497EAv
../.merge_file_6Wrwsj
../.merge_file_FTsrcP
,如果Myvar为字符串,则为True。
所以:
isinstance(Myvar, str)
要成为pythonic语言,请勿使用大写字母作为变量...
答案 3 :(得分:0)
>>> string = "Hello"
>>> isinstance(string,str)
True
>>> isinstance(1,str)
False
>>> if isinstance(string,str):
print("this is a string")
else:
print("this is not a string")
this is a string
>>>