首页 > 代码库 > 关于python的函数的*和**参数:

关于python的函数的*和**参数:

1.将足够的参数解包以后传递给函数:
>def f(p1, p2, p3, p4):
>     print p1+p2+p3+p4
>
>li = [1, 2, 3, 4]
>f(*li)
10
>
>tu = (1, 2, 3, 4)
>f(*tu)
10
>
>di = {‘p1‘:1, ‘p2‘:2, ‘p3‘:3, ‘p4‘:4}
>f(**di)
>10

2.使用封包的方法访问多余的参数
>>> def funct(*para, **para_dict):

 ...     print para

 ...     print para_dict

 ... 

>>> funct(1,2,3,4,x=5,y=6,z=7)

(1, 2, 3, 4)

{‘y‘: 6, ‘x‘: 5, ‘z‘: 7}
>>> funct(1,x=5,y=6,z=7)

(1,)

{‘y‘: 6, ‘x‘: 5, ‘z‘: 7}
将多余的位置参数封包入para,将多余的关键字参数封包入para_dict,前者是一个序列(明确一点:元组tuple),后者是一个字典。