Python:*args和**kwargs的区别和函数参数传递的应用

目录

一、 *args和**kwargs的区别

1.1 区别

1.2 代码示例

1.3 运行结果 

二、*args和**kwargs在函数参数传递的应用

2.1 代码示例

2.2 运行结果

三、参考资料

四、心得体会


一、 *args和**kwargs的区别

1.1 区别

*args和**kwargs是一种约定俗成的命名方式,为了方便大家进行辨认和学习,实际上也可以自己命名如:*var,**kwvar等,最主要的区别在于*以及*的个数。

*args相当于一个列表,可以接收任意数量的非键值对参数,作为参数传递给一个函数。

**keargs相当于一个字典,可以接收不定长度的键值对,作为参数传递给一个函数。

1.2 代码示例

# 定义一个函数,定义一个参数kwargs,前面的**代表可接收任意数量的键值对。
def self_intro_kwargs(**kwargs):
    for key, value in kwargs.items():
        print("{0} is {1}".format(key, value), end=',')


self_intro_kwargs(My_name='Apple', my_color='red', my_size='not big', but_my_taste='delicious')


# 定义一个函数,定义一个参数args,前面的*代表可接收任意数量的非键值对。
def self_intro_args(*args):
    for parameter in args:
        print(parameter, end=' ')


self_intro_args('my', 'name', 'is', 'Banana,', 'my', 'color', 'is', 'yellow,', 'i\'m', 'tall',
                'and also delicious')

1.3 运行结果 

二、*args和**kwargs在函数参数传递的应用

2.1 代码示例

# 定义一个参数传递函数用于测试
def test_args_kwargs(var1, var2, var3):
    print("the first parameter:", var1)
    print("the second parameter:", var2)
    print("the third parameter:", var3)
    print('')


# 两种调用方式,第一种直接输入参数,第二种使用*args或者**kwargs
# 第一种直接输入参数
test_args_kwargs(857, 996, 666)
# 第二种使用*args或者**kwargs
para = (857, 996, 666)
test_args_kwargs(*para)  # 如果没有*,将会导致报错,误以为只是只传入para这个参数,导致var2,var3缺失

kwpara = {'var1': 666, 'var2': 857, 'var3': 996}
test_args_kwargs(**kwpara)

2.2 运行结果

 

三、参考资料

Python 入门指南 — Python3 中文手册 3.5.2 文档

四、心得体会

1.合适的参考文档和信息检索

2.适当的上手实践,用自己的方式重新学习,学习效果会更好

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值