首页 > 其他 > 详细

关键字参数

时间:2019-05-22 15:33:32      阅读:100      评论:0      收藏:0      [点我收藏+]

关键字参数允许你传入0个或任意多个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict
对于关键字参数,函数的调用者可以传入任意不受限制的关键字参数,以扩展函数的功能
但至于到底传入了哪些关键字参数,就需要在函数内部通过kw检查

定义关键字参数函数

def person(name, age, **kw): #函数person除了必选参数name和age外,还接受关键字参数kw
  print(name:, name, age:, age, other:, kw)

person(Michael, 30) #输出:name: Michael age: 30 other: {},调用该函数时,可只传入必选参数
person(Bob, 35, city=Beijing) #输出:name: Bob age: 35 other: {‘city‘: ‘Beijing‘},调用该函数时,也可传入任意个数的关键字参数

 

和可变参数类似,也可先组装出一个dict后,再把该dict转换为关键字参数传进去

extra = {city: Beijing, job: Engineer}
person(Jack, 24, city=extra[city], job=extra[job]) #输出:name: Jack age: 24 other: {‘city‘: ‘Beijing‘, ‘job‘: ‘Engineer‘}
person(Jack, 24, **extra)  #输出:name: Jack age: 24 other: {‘city‘: ‘Beijing‘, ‘job‘: ‘Engineer‘},是上例的简写形式
                  # **extra表示把extra这个dict的所有key-value用关键字参数传入到函数的**kw参数,kw将获得一个dict
                  # 注意kw获得的dict是extra的一份拷贝,对kw的改动不会影响到函数外的extra

 

调用者可传入不受限制的关键字参数

def person(name, age, **kw):
  if city in kw: #函数内可以对关键字参数进行检查
    # 有city参数
    pass
  if job in kw:
    # 有job参数
    pass
print(name:, name, age:, age, other:, kw)

person(Jack, 24, city=Beijing, addr=Chaoyang, zipcode=123456) #关键字参数是任意的

 

关键字参数

原文:https://www.cnblogs.com/shiliye/p/10906130.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!