Date: 2018.6.22


1、参考
2、Python函数参数用法

函数参数:必选参数、默认参数、可变参数、关键字参数

(1)必选参数:顾名思义,就是函数必须有的入参;

(2)默认参数:在函数定义时给定一个初始值,在函数调用时可以不传这个参数,采用默认参数的值;下例中的y就是默认参数;

def add(x,y=5):
sum = x + y
return sum


注意:设置默认参数时,必选参数在前,默认参数在后!


(3)可选参数:顾名思义,函数参数的个数是可变的,例如下面的numbers就是可变参数。

def calc(*numbers):
sum = 0
for n in numbers:
sum = sum + n * n
return sum

(4)关键字参数:可选参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple。而关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。请看示例:

def person(name, age, **kw):
print('name:', name, 'age:', age, 'other:', kw)

函数person除了必选参数name和age外,还接受关键字参数kw。在调用该函数时,可以只传入必选参数:

person('Michael', 30)
name: Michael age: 30 other: {}

也可以传入任意个数的关键字参数:

person('Bob', 35, city='Beijing')
name: Bob age: 35 other: {'city': 'Beijing'}

person('Adam', 45, gender='M', job='Engineer')
name: Adam age: 45 other: {'gender': 'M', 'job': 'Engineer'}


小结:

函数参数的用法是非常灵活的,既可以简单调用,也可以传入复杂的参数。
默认参数一定要用不可变对象,如果是可变对象,程序运行时会有逻辑错误!
要注意定义可变参数和关键字参数的语法:
*args是可变参数,args接收的是一个tuple;
**kw是关键字参数,kw接收的是一个dict。


—————————————–我是有底线的——————————————–