python函数*args和**kwargs

def f(*args, **kwargs):
    
    print('args',args)
    print('kwargs',kwargs)

f(7,8,9, a=1, b=2)

输出:
args (7, 8, 9)
kwargs {'a': 1, 'b': 2}

args 是一个元祖,也叫位置参数,调用函数的时候,位置参数要在关键字参数之前

kwargs是一个字典, 也叫关键字参数,

但实际调用函数,是f(7,8,9, a=1,b=2)

而不是f((7,8,9), {'a':1, 'b':2}), 这个要注意

当然调用f这个函数的时候,由于*args, **kwargs是表示可变参数的,

*args, **kwargs 意思是不知道会传入怎样的参数,调用的时候可以,可以只传位置参数,例如:f(7)

也可以只传关键字参数f(a=1), 也可以不传参数,直接f(), 也可以位置参数和关键字参数都传,并且数量随意,如下:

def f(*args, **kwargs):
    
    print('args',args)
    print('kwargs',kwargs)


f(7)
f(a=1)
f()
f(1,2,3,4,a=5,b=6,c=7)

输出分别是:
args (7,)
kwargs {}

args ()
kwargs {'a': 1}

args ()
kwargs {}

args (1, 2, 3, 4)
kwargs {'a': 5, 'b': 6, 'c': 7}

同时args和kargs也可以叫其他名字,比如改成c和d

def f(*c, **d):
    
    print('c',c)
    print('d',d)

f(7,8,9, a=1, b=2)

输出:
c (7, 8, 9)
d {'a': 1, 'b': 2}

加个默认参数

def f(x, *args, **kargs):
    
    print('x', x)
    print('args',args)
    print('kargs',kargs)


f(7, 8, 9 , a=1, b=2)

输出:
x 7
args (8, 9)
kargs {'a': 1, 'b': 2}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值