Python函数参数中的*tuple和**dict参数

描述

很多复杂函数在调用时会用到*tuple和**dict,现在记录一下,请看下面代码:

# 参数列表中的arg代表一个参数,这个参数可以是整数,浮点数或者是字符串
# 参数列表中的*args代表一个元组参数,适用于在定义函数的时候,并不确定参数究竟需要几个的场景
def func1(arg, *args):
    print("arg:", arg)
    print("args:", args)
    for value in args:
        print("other args:", value)

# 参数列表中的**args代表一个字典参数,字典中都有确定的键值对
def func2(**args):
    print("args:", args)
    for key in args.keys():
        print("key:%s value:%s" % (key, args.get(key)))


def func3(arg, *tuple, **dict):
    print("arg=%s" % (arg))
    print("tuple:", tuple)
    print("dict:", dict)
    for value in tuple:
        print("value is %s" % (value))
    for key in dict.keys():
        print("key:%s value:%s" % (key, dict.get(key)))


if __name__ == "__main__":
    print("----------func1----------")
    # 针对func1(arg,*args),第一个实参会传给arg形参,后面的实参'a',True,False,'Hello'会以元组的形式传给*args形参
    func1(1, 'a', True, False, 'Hello')
    
    print("\n\n----------func2----------")
    # 针对func2(**args),会把a='Apple',b='Banana',c='Cheery'转化为一个字典传给**args形参
    func2(a='Apple', b='Banana', c='Cheery')
    
    print("\n\n----------func3----------")
    # func3(arg,*tuple,**dict)第一个实参1会传给arg形参,2,3,4,5会以元组的形式传给*tuple形参,a=1,b=2,c=3会以字典的形式传给形参**dict
    func3(1, 2, 3, 4, 5, a=1, b=2, c=3)

输出结果:
----------func1----------
arg: 1
args: ('a', True, False, 'Hello')
other args: a
other args: True
other args: False
other args: Hello


----------func2----------
args: {'a': 'Apple', 'b': 'Banana', 'c': 'Cheery'}
key:a value:Apple
key:b value:Banana
key:c value:Cheery


----------func3----------
arg=1
tuple: (2, 3, 4, 5)
dict: {'a': 1, 'b': 2, 'c': 3}
value is 2
value is 3
value is 4
value is 5
key:a value:1
key:b value:2
key:c value:3

其实简单理解就是把多个参数打包为一个整体传给函数!
博主技术交流Q群:1151493105

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值