因为python是弱类型语言,在声明函数时默认不指定参数类型。而python又有强大的内省功能,在出现此类错误时会raise exception,所以大多数时候我们不需要去判断参数类型。
但是总是会出现需要我们提前获知传入参数的数据类型,比如当数据类型为int进入分支1,当数据类型为str进入分支2.
第一种方法:
在函数声明时提示后续的开发者,各个入参的类型;
但是要注意的是:这个类型提示并不会 raise exception
def getSum(a:int, b:int):
return a+b
第二种方法:
简单粗暴的类型判断
在处理入参数据之前进行数据类型判断,使用 type() 函数
数据对象对应的类型返回为:
def getSum(a, b):
if a.type() == "int" && b.type() == "int":
return a+b;
else:
#raise exception
第三种方法
不判断
当然,不判断不代表不处理,当操作符或python内置的处理函数遇到错误的变量类型时,会raise Exception.TypeError , 所以按照如下方法处理即可:
def getSum(a,b);
try:
return a+b
except TypeError:
# do something for the exception