目录
- 一、可变长形参之* (牢记)
- 二、可变长形参之** (牢记)
- 三、可变长参数*和**联用 (牢记)
- 四、可变长形式参数* (了解)
- 五、可变长形式参数** (了解)
可变长参数:指的是在调用函数时,传入的参数个数可以不固定
调用函数时,传值的方式无非两种,一种是位置实参,另一种是关键字实参,因此形参也必须得有两种解决方法,以此来分别接收溢出的位置实参(*)与关键字实参(**)
- 形参
- 位置形参
- 默认形参
- 实参
- 位置实参
- 关键字实参
一、可变长形参之* (牢记)
接收多余位置实参, 以元祖的形式存储,然后把元组赋值给*
后的参数。需要注意的是:*
后的参数名约定俗成为args。
# 可变长参数之* # 接收多余位置实参, 以元祖存储
def func(a, b, *args): # *abc会接收多余的位置实参,应该使用args作为变量名,args是约定俗称
print(a, b)
print(args) # args就会接收多余的位置实参, 以元祖存储
func(1, 2, 3, 4.0, "a")
1 2
(3, 4.0, 'a')
二、可变长形参之** (牢记)
接收多余的关键字实参,以字典形式存储,然后把字典赋值给**
后的参数。需要注意的是:**
后的参数名约定俗成为kwargs。
# 可变长参数之** # 接收多余的关键字实参,以字典形式存储
def func(name, pwd, **kwargs):
print(name, pwd)
print(kwargs)
func("xucheng",123, xc=123, baba=456)
xucheng 123
{'xc': 123, 'baba': 456}
三、可变长参数*和**联用 (牢记)
def func(name, pwd, *args, **kwargs):
print(name, pwd)
print(args) # 位置参数,元祖
print(kwargs) # 关键字参数,字典
func("xucheng",123,4,5,6, woni="ahaha",haha="ad")
xucheng 123
(4, 5, 6)
{'woni': 'ahaha', 'haha': 'ad'}
四、可变长形式参数* (了解)
def func(name, pwd, x, y, z):
print(name, pwd)
print(x, y, z)
tup = (4, 2, 3)
func('nick', 123658, *tup) # *会把元祖打散成位置实参传给形参,解压缩
nick 123658
4 2 3
五、可变长形式参数** (了解)
def func(name, pwd, **kwargs):
print(name, pwd)
print(kwargs)
dic = {'a': 1, 'b': 2} # **dic --> a=1 , b=2
func('nick', 123658, **dic) # **会把字典打散成关键字实参传给形参,解压缩
nick 123658
{'a': 1, 'b': 2}