在Python中定义数据类型

时间:2015-02-02 03:51:54

标签: python logic

我对这可能如何运作有所了解,但我不知道如何做到的确切语法。

一个例子:

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

该函数将如何知道我输入的是一个字符串? 它是否符合......

string = type.str

2 个答案:

答案 0 :(得分:0)

不,你不能,python是动态的但不是静态的,因此它无法在“编译时”知道参数类型,相反,你可以通过断言检查输入类型。

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)

答案 1 :(得分:0)

有一些方法可以检查变量的类型。首先,您可以检查参数是否是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,但如果您只想检查参数是否属于某种类型,我会采用第一种情况。