Python - 我该怎么做呢?

时间:2015-02-21 15:36:02

标签: python function

以下是一个示例代码:

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" ?

1 个答案:

答案 0 :(得分:2)

字符串对象与str类型对象不同。它是该类型的实例,而不是类型本身。

您可以使用type() function来测试对象类型:

>>> type('this is a string') is str
True

但您通常希望使用isinstance() function代替:

>>> isinstance('this is a string', str)
True