在 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
,但如果你只想检查参数是否属于某种类型,我会采用第一种情况。
我对这可能如何工作有一些了解,但我不知道具体的语法。
一个例子:
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
,但如果你只想检查参数是否属于某种类型,我会采用第一种情况。