python中函数定义语法 def power():
函数的参数
参数的默认 eg:def power(x,n=2): x是形式参数,调用时必须传递,n为默认参数,如果没有传递,将默认为2
设置默认参数时需要注意将必选参数放在前面,默认参数放在后面,否则编译器会报错
当函数有多个参数时,把变化大的参数放前面,变化小的参数放后面。变化小的参数就可以作为默认参数。
当不按顺序提供部分默认参数时,需要把参数名写上。
默认参数的容易出错的地方
所以,定义默认参数要牢记一点:默认参数必须指向不变对象!
可变参数定义用*,表示传递的参数是一个数组或者元组,def cale(*name,age),如果本身是数组或者元组那么会将每一个元素传递进去,如果是直接传递多个数字或者字符,编译器会自动当作元组来传递参数。
关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。
>>>extra = {'city':'Beijing','job':'Engineer'}
>>>person('Jack',24, **extra)
name: Jack age:24 other: {'city':'Beijing','job':'Engineer'}
**extra表示把extra这个dict的所有key-value用关键字参数传入到函数的**kw参数,kw将获得一个dict,注意kw获得的dict是extra的一份拷贝,对kw的改动不会影响到函数外的extra。
*args是可变参数,args接收的是一个tuple;
**kw是关键字参数,kw接收的是一个dict。