有参数函数–必备参数:函数应该检查参数类型
#raise 抛出异常对象(固定用法)
def my_abs(x):
if not isinstance(x,(int,float)):
raise TypeError('bad operand type')
if x>=0:
return x
else:
return -x
有参数函数–命名参数
需要注意的是,传参时命名参数必须在非命名参数的后面,否则就会报SyntaxError:non-keyword arg after Keyword arg 的错误。
练习:定义三个参数的加法
>>> def add(a,b,c):
... return a+b+c
...
>>> add(c=1,b=2,a=3)
6
>>> add(3,c=1,b=2)
6
>>> add(3,a=1,b=2) #没有命名参数的时候,前面都是按照顺序定义的。会觉得有两个a
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: add() got multiple values for argument 'a'
>>>