Python语言入门(六)关键字参数与命名关键字参数

#关键字参数表示可以接收类似字典的key-value参数形式      
def kwParamsFunc(name,age,**kwp):
    print(name,age)
    if 'sex' in kwp:
        print(kwp['sex'])
#调用
kwParamsFunc('wn', 18, sex='女', phone='18684638281')
#如果函数内使用了某个关键字参数,但调用时没有传入,如上代码会有异常
#为了解决这个问题,可以在函数内部检查,改为如下:
def kwParamsFunc2(name,age,**kwp):
    print(name,age)
    if 'sex' in kwp:
        print(kwp['sex'])

#如果要限制只能传指定名字的参数,则可以使用命名关键字参数
#命名关键字参数,是对关键字参数方式的进一步约束,更安全了
#定义需要一个*号作为分隔符,*后面的参数表示只能传递该名字的参数
#如下表示两个位置参数,还有一个名为qq的关键字参数,调用时传其它名字会报错
def namedKwywordsParam(name,age,*,qq):
    print(name,age,qq)
    
#如果函数定义中已经有了一个可变参数,后面跟着的命名关键字参数就不再需要一个特殊分隔符*了
#如下函数,有name和sex两个位置参数,*personInfo是可变参数列表(tuple)
#qq则是一个命名关键字参数,调用时需要同时指定参数名和值
def register(name,sex,*personInfo,qq):
    print('姓名:' ,name,'性别:',sex)
    for arg in personInfo:
        print(arg)
    print('QQ号:%s' % qq)
register('newton', '男','0735',qq='2300666')

猜你喜欢

转载自blog.csdn.net/liudun_cool/article/details/78660370
今日推荐