一。 必选参数:必须传入的参数
二。默认参数:不传入取默认值,传入则覆盖,必须指向不变对象
>>> def my_fun(a,b=[2,]): ... b.append(5) ... print 'a=',a,'b=',b ... >>> my_fun(1) a= 1 b= [2, 5] >>> my_fun(1) a= 1 b= [2, 5, 5] >>> my_fun(1) a= 1 b= [2, 5, 5, 5] >>>
三。可变参数:
>>> def my_fun(*a): ... print a ... >>> my_fun(1,2,3) (1, 2, 3) >>>
参数 a 接收到是一个tuple
也可以传入tuple和List
>>> def my_fun(*a): ... print a ... >>> b = [4,5,6] >>> my_fun(*b) (4, 5, 6) >>> my_fun(b) ([4, 5, 6],) >>> my_fun(1) (1,) >>>
区别传入*b 和 b
四。关键字参数
>>> def my_fun(**a): ... print a ... >>> b = {'city':'Beijing','job':'Engineer'} >>> my_fun(**b) {'city': 'Beijing', 'job': 'Engineer'} >>> my_fun(city = 'Beijing',job = 'Engineer') {'city': 'Beijing', 'job': 'Engineer'} >>>
a 接收一个dict
五。参数组合
参数组合按左往右适配 必选参数 默认参数 可变参数 关键字参数
六。参考:
https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001374738449338c8a122a7f2e047899fc162f4a7205ea3000