python函数参数*args, **kwargs其实很好区分

可变参数

args,kwargs只是默认变量名称,翻译一下就是列表参数和字典参数(key-word args),关键之处是这里的*和**,这两个都是可变参数。

在函数定义时使用可变参数

Python函数定义中的参数声明一般有三种方式:

# 1. 显示参数(瞎编的)
def func1(name, age):
    pass
# 调用方式:
func1('Lily', 12)
func1(name='Lily', age=12)
...
    
2. 列表参数 
def func2(*args):
    print(args)  # ['Lily', 12]
# 调用方式
func2('Lily', 12) # 不指定参数名,被解析为列表参数

3. 字典参数
def func(**kwargs):
    print(args)  # {'name':'Lily', 'age':12}
# 调用方式
func1(name='Lily', age=12) # 指定参数名, 非显示声明的参数将被解析为字典参数

在函数调用时使用可变参数

在上面我们定义的时候都是使用的固定参数,Python调用函数的时候也可以直接把列表或字典内的元素作为参数(注意:是里面的元素,而不是字典或列表本身)

例如,对于这个函数定义

def func1(name, age):
    pass

如果想要正确的传入name和age两个参数,对应的就可以用下面三种方式

# 基础版本
func1('Lily', 12) 

# 列表参数版本
info_list = ['Lily', 12]
func1(*info_list)  # 将列表元素解析到对应位置的参数

# 字典参数版本
info_dict = {'name':'Lily', 'age':12}
func1(**info_dict) # 这个就不用解释了吧

Python可变参数总结

在函数定义时使用可变参数,会将传入的多余的、没有显示声明的参数放进列表(args)或字典(kwargs)。
在函数调用时使用可变参数,则是将列表、字典解析成函数显示声明的参数。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值