以下是一个示例代码:
def test(something=None):
test = something is None
test2 = something is str
if(test == True):
return "test = True"
elif(test2 == True):
return "test2 = True"
else:
return
现在,如果我运行它并输入Python Shell:
test()
我会得到
'test = True'
但是,如果我输入:
test("This is a string")
我不会被退回" test2 = True"这就是我想要的,我根本就没有得到任何回报。
我知道为什么会发生这种情况,但是当我输入Python Shell时,我将如何正确地执行此操作呢?
test("String")
或任何其他字符串,我会返回" test2 = True" ?
答案 0 :(得分:2)
字符串对象与str
类型对象不同。它是该类型的实例,而不是类型本身。
您可以使用type()
function来测试对象类型:
>>> type('this is a string') is str
True
但您通常希望使用isinstance()
function代替:
>>> isinstance('this is a string', str)
True