在 Python 中定义数据类型

Define datatype in Python

我对这可能如何工作有一些了解,但我不知道具体的语法。

一个例子:

def function(string):
    string = string + "A"

函数怎么知道我输入的是字符串? 是否符合...

string = type.str

不,你不能,python 是动态的而不是静态的,所以它无法知道 "compile time" 处的参数类型,相反,你可以通过断言检查输入类型。

def fun(string):
    assert isinstance(string, basestring)  # we usually check if it type is basestring as this works fine for both ASCII string and Unicode.
    string = string + "A"
    return string


if __name__ == '__main__':
    fun(2)

有一些方法可以检查变量的类型。首先,您可以检查参数是否是 str:

的实例
def isstring(parameter):
    return isinstance(parameter, str)

另一种方法是尝试将字符串(在本例中为 "")与参数连接起来并最终捕获异常(TypeError 异常):

def isstring(parameter):
    try:
        parameter += ""
        return True
    except TypeError:
        return False

另一种方法是使用type(类似于isinstance,但主要区别在于涉及多态性时):

def isstr(parameter):
    return type(parameter) == str

你也可以使用assert,但如果你只想检查参数是否属于某种类型,我会采用第一种情况。