可变参数 *args 和关键字参数 ** kwargs 在函数内的表现形式

# 定义带有可变参数和关键字参数的函数
def show(*args, **kwargs):
    # args: 元组
    # kwargs: 字典
    print(args)
    print(kwargs)
	
	# 下面的几步知识为了迭代查看参数的每个值,要注意的是 **kwargs 的展现实字典形式,所以要用 dict.values() 。
    # for value in args:
    #     print(value)
    # 
    # print("*" * 30)
    # 
    # for value in kwargs.values():
    #     print(value)

# 调用带有不定长参数的函数
# show()

# 按照位置参数进行传参,该数据封装成元组给args
show(1, 3, 5)

## output 
(1, 3, 5)
{}

# 按照关键字参数的方式进行差传参
show(a=2, b=4, c=6)

## output
()
{'a': 2, 'b': 4, 'c': 6}

# 前面使用位置参数后面使用关键字
show(1, 3, 5, a=2, b=4, c=6)

## output 
(1, 3, 5)
{'a': 2, 'b': 4, 'c': 6}


my_tuple = (1, 3, 5)
# 需求: 把元组按照位置参数的方进行传参:*my_tuple
show(*my_tuple)

## output
(1, 3, 5)
{}

my_tuple = (1, 3, 5)
# 元组前不加 *,就会将整个元组看做一个单独的参数。
show(my_tuple)

## output
((1, 3, 5),)
{}

my_dict = {"a": 2, "b": 4, "c": 6}
# 需求: 把字典按照关键字的方式进行传参: **my_dict
# 同理,不加** 的话视字典为单独一个参数参入元组,只加一个的话将每个 key 传入元组。
show(**my_dict)  # => show(a=2, b=4, c=6)

## output
()
{'a': 2, 'b': 4, 'c': 6}

my_tuple = (1, 3, 5)
my_dict = {"a": 2, "b": 4, "c": 6}

show(*my_tuple, **my_dict) # => show(1, 3, 5, a=2, b=4, c=6)

## output 
(1, 3, 5)
{'a': 2, 'b': 4, 'c': 6}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值