python 命名关键字参数 参数组合 参数小结

本文详细介绍了Python中命名关键字参数的两种形式及其与*args和**kwargs的组合使用。命名关键字参数需要特殊分隔符,如`def person(name, age, *, city, job)`。在函数调用时,参数按顺序依次匹配。可以自由组合使用位置参数、默认参数、命名关键字参数和关键字参数,但定义顺序必须遵循:位置参数、默认参数、*args、命名关键字参数、**kwargs。
摘要由CSDN通过智能技术生成

9.5.5 命名关键字参数

命名关键字参数有两种形式:
def person(name,age,*,city,job)
或者
def person(name,age,city)
和关键字参数**kw不同,命名关键字参数需要一个特殊分隔符
,*后面的参数被视为命名关键字参数。
在这里插入图片描述

9.5.6 参数的组合

顺序:必选参数、默认值参数、命名关键字参数或者关键字参数
在函数调用的时候,Python解释器自动按照参数位置和参数名把对应的参数传进去。

def  func(a,b,c=0,*args,**kw):
    print 'a=',a,'b=',b,'c=',c,'args=',args,'kw=',kw

print  func(1,2)  
# = > a= 1 b= 2 c= 0 args= () kw= {}
 
print func(1,2,c=3)
# = > a= 1 b= 2 c= 3 args= () kw= {}
 
print func(1,2,3,'a','b')
# => a= 1 b= 2 c= 3 args= ('a', 'b') kw= {}
 
print  func(1,2,3,'a','b',x=99)
# =>a= 1 b= 2 c= 3 args= ('a', 'b') kw= {'x': 99}``

小结

如果形参中已经有一个args了,命名关键字参数就不再需要一个单独的*作为分隔符号了。
可变参数args与关键字参数kwargs通常是组合在一起使用的,如果一个函数的形参为args与kwargs,那么代表该函数可以接收任何形式、任意长度的参数。
提示: *args、**kwargs中的args和kwargs被替换成其他名字并无语法错误,但使用args、kwargs是约定俗成的。
综上所述,所有参数可任意组合使用,但定义顺序必须是:

位置参数、默认参数、*args、命名关键字参数、**kwargs

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值