一、函数的定义格式:
def 函数名(参数列表):
函数体
def fun1(a, b, c): return a + b + c
二、位置传递:位置对应
print(fun1(3 ,2 ,1))
输出:
6
三、关键字传递:位置参数要出现在关键字参数之前
print(fun1(3 ,c = 1, b = 2))
输出:
6
四、参数默认值:可以给参数赋予默认值(default)
def fun2(a, b, c = 100): return a + b + c print(fun2(1, 10)) print(fun2(1, 10, 0))
输出:
111
11
五、包裹位置传递:在参数表中,所有的参数被收集,根据位置合并成元组
定义函数时需要在参数前加*
def fun3(*tup): print type(tup) print tup fun3(1) fun3(1, 2) fun3(1, 2, 3)
输出:
<type ‘tuple‘>
(1,)
<type ‘tuple‘>
(1, 2)
<type ‘tuple‘>
(1, 2, 3)
六、包裹关键字传递:在参数表中,所有的参数被收集,根据关键字合并成字典
定义函数时需要在参数前加**
def fun4(**dic): print type(dic) print dic fun4(a=1,b=9) fun4(m=2,n=1,c=11)
输出:
<type ‘dict‘>
{‘a‘: 1, ‘b‘: 9}
<type ‘dict‘>
{‘c‘: 11, ‘m‘: 2, ‘n‘: 1}
七、解包
* 每一个元素对应一个位置参数
** 每个键值对作为一个关键字
def fun5(a, b, c): print(a, b, c) args = (2, 1, 3) fun5(*args) dict = {'b':1,'a':2,'c':3} fun5(**dict)
输出:
(2, 1, 3)
(2, 1, 3)
八、混合
在定义或者调用参数时,参数的几种传递方式可以混合。但在过程中要小心前后顺序。
基本原则:位置>关键字>包裹位置>包裹关键字,并且根据上面所说的原理细细分辨。
时间: 2024-10-03 23:29:07