python *args参数如何用input_python之动态参数 *args,**kwargs和命名空间

本文详细介绍了Python中动态参数`*args`和`**kwargs`的使用,包括它们如何聚合和传递实参。同时,文章还探讨了函数的形参顺序规则。此外,还深入讲解了Python的命名空间,包括全局命名空间、局部命名空间和内置命名空间,以及`global`和`nonlocal`关键字的作用。最后,讨论了函数的嵌套定义和调用。
摘要由CSDN通过智能技术生成

一、函数的动态参数 *args,**kwargs, 形参的顺序

1、你的函数,为了拓展,对于传入的实参数量应该是不固定,

所以就需要用到万能参数,动态参数,*args, **kwargs

1,*args 将所有实参的位置参数聚合到一个元组,并将这个元组赋值给args

(起作用的是* 并不是args,但是约定俗成动态接收实参的所有位置参数就用args)

def sum1(*args):print(args)

sum1(1, 2, ['hello']) #是一个元组(1, 2, ['hello'])

2,**kwargs 将所有实参的关键字参数聚合到一个字典,并将这个字典赋值给kwargs

(起作用的是** 并不是kwargs,但是约定俗成动态接收实参的所有关键字参数就用kwargs)

def fun(*args, **kwargs):print(args)print(kwargs)

fun(1, 2, ['a', 'b'], name='xiaobai', age=18)#结果:#(1, 2, ['a', 'b']) # 位置参数,元组#{'name': 'xiaobai', 'age': 18} # 关键字参数,字典

2、*的用法

在函数的定义时,*位置参数,**关键字参数--->聚合。

在函数的调用(执行)时,*位置参数,**关键字参数--->打散。

实参--->*位置参数--->把位置参数打散成最小的元素,然后一个个添加到args里组成一个元组

l1 = [1, 2, 3]

l2= [111, 22, 33, 'xiaobai']#如果要将l1,l2通过函数整合到一起#方法一(实参不用*):

def func1(*args):return args[0] + args[1]print(func1(l1, l2)) #[1, 2, 3, 111, 22, 33, 'xiaobai']

#方法二(实参用*):实参使用*打散

def func1(*args):returnargsprint(func1(*l1, *l2)) #(1, 2, 3, 111, 22, 33, 'xiaobai')

实参--->**关键字参数--->把关键字参数打散成最小的元素,然后

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值