我对这可能如何运作有所了解,但我不知道如何做到的确切语法。
一个例子:
def function(string):
string = string + "A"
该函数将如何知道我输入的是一个字符串? 它是否符合......
string = type.str
答案 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
,但如果您只想检查参数是否属于某种类型,我会采用第一种情况。