博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关键字参数
阅读量:5099 次
发布时间:2019-06-13

本文共 1205 字,大约阅读时间需要 4 分钟。

关键字参数允许你传入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参数    passprint('name:', name, 'age:', age, 'other:', kw)person('Jack', 24, city='Beijing', addr='Chaoyang', zipcode=123456) #关键字参数是任意的

 

转载于:https://www.cnblogs.com/shiliye/p/10906130.html

你可能感兴趣的文章
罗马数字与阿拉伯数字转换
查看>>
Eclipse 反编译之 JadClipse
查看>>
asp.net 获取IP地理位置的几个主要接口
查看>>
Python入门-函数
查看>>
[HDU5727]Necklace(二分图最大匹配,枚举)
查看>>
距离公式汇总以及Python实现
查看>>
设计模式之装饰者模式
查看>>
一道不知道哪里来的容斥题
查看>>
Blender Python UV 学习
查看>>
window添加右键菜单
查看>>
入手腾龙SP AF90mm MACRO
查看>>
python学习4 常用内置模块
查看>>
Window7上搭建symfony开发环境(PEAR)
查看>>
ResolveUrl的用法
查看>>
Linux内核态、用户态简介与IntelCPU特权级别--Ring0-3
查看>>
第23月第24天 git命令 .git-credentials git rm --cached git stash clear
查看>>
java SE :标准输入/输出
查看>>
一些方便系统诊断的bash函数
查看>>
【转载】基于vw等viewport视区相对单位的响应式排版和布局
查看>>
<转>关于MFC的多线程类 CSemaphore,CMutex,CCriticalSection,CEvent
查看>>