标签:rgs 分享 作用 info turn 接收 不能 oca 名称空间
当实参数量与形参数量相等时,参数传递正常。
def func1(a, b, c):
pass
func1(1, 2, 3)

当实参数量与形参数量不相等时,则会报错。
def func1(a, b, c):
pass
func1(1, 2, 3, 4, 5, 6, 6)

用户传入到函数中的实参数量不确定时,或者为了以后扩展,此时要用到动态参数 *args **kwargs(万能参数)。
顺序:
位置参数,*args,默认参数,**kwargs
*args是接收的是所有的位置参数。
def func(*args, **kwargs):
print(args)
print(kwargs)
func(1, 2, 3, 4)
注意:print()里面的args前面不能带 * 。
**kwargs接收的是所有的关键字参数。
def func(*args, **kwargs):
print(args)
print(kwargs)
func(x=4, y=5, z=6)

注意:print()里面的args前面不能带 * 。
def func(*args, **kwargs):
print(args)
print(kwargs)
func(1, 2, 3, x=4, y=5, z=6)

顺序
位置参数,默认参数
def func2(a, b, sex = ‘男‘):
print(a)
print(b)
print(sex)
func2(1, 2, ‘女‘)

位置参数、*args、默认参数
def func2(a, b,*args, sex = ‘男‘):
print(a)
print(b)
print(args)
print(sex)
func2(1, 2, 5,6,7,8,9, sex=‘女‘)

位置参数、*args、默认参数、**kwargs
def func2(a, b, *args, sex=‘男‘,age=20, **kwargs):
print(a)
print(b)
print(args)
print(sex)
print(age)
print(kwargs)
func2(1, 2, 5, 6, 7, 8, 9, x=6, y=5, name=‘alex‘)

加法器:
def sum1(*args):
ret = 0
for i in args:
ret += i
return ret
print(sum1(1, 2, 3,))

def func3(*args, **kwargs):
print(args)
print(kwargs)
l1 = [1, 2, 3]
l2 = [11, 21, 32]
func3(l1, l2)

def func3(*args, **kwargs):
print(args)
print(kwargs)
l1 = [1, 2, 3]
tu1 = (1, 2, 3)
tu2 = (11, 22, 33)
func3(*l1, *tu1, *tu2)

def func3(*args,**kwargs):
print(args)
func3(1, 2, 3, 1, 2, 3, 11, 22, 33)

在函数的定义中, * 是聚合的意思。
def func3(*args,**kwargs):
print(args)
print(kwargs)
l1 = [1, 2, 3]
dic ={‘name‘: ‘alex‘}
dic1 ={‘age‘: 1000}
func3(*l1, **dic, **dic1)

* 的魔性用法:
def func3(*args,**kwargs): # 函数的定义 *用意是聚合。
print(args)
print(kwargs)
l1 = [1, 2, 3]
tu1 = (1, 2, 3)
tu2 = (11, 22, 33)
func3(*l1, *tu1, *tu2)

def func3(*args,**kwargs):
print(args)
print(kwargs)
func3(1,2,3,1,2,3,11,22,33)

def func3(*args,**kwargs):
print(args)
print(kwargs)
l1 = [1, 2, 3]
dic ={‘name‘: ‘alex‘}
dic1 ={‘age‘: 1000}
func3(*l1, **dic, **dic1)

Python全栈__动态参数、名称空间、作用域、作用域链、加载顺序、函数的嵌套、global、nonlocal
标签:rgs 分享 作用 info turn 接收 不能 oca 名称空间
原文地址:https://www.cnblogs.com/ZN-225/p/9587944.html