学习笔记,有错必纠


收集关键词参数

我们知道一个函数可以接收不定个数的参数,以*开头的参数名会收集所有的参数到一个元组上,例如,printall接收任意个数的参数并打印它们:

def printall(*args):print(args)printall("aer", 10, True)

输出:

('aer', 10, True)

*号操作符并不会搜集关键词实参:

In [24]: printall(1, 2, b = 'as')
TypeError: printall() got an unexpected keyword argument 'b'

要收集关键词实参,可以使用**操作符:

def printall2(*args, **kwargs):print(args, kwargs)printall2(1, 2, b = 'as')

输出:

(1, 2) {'b': 'as'}

我们看到kwargs收集到的结果是一个将关键词映射到值字典

如果我们有一个关键词映射到值的字典,我们可以使用分散操作符**来调用函数:

class Point:def __init__(self, x = 0, y = 0, z = 0):self.x = xself.y = yself.z = zdef __str__(self):return "({}, {}, {})".format(self.x, self.y, self.z)d = dict(x = 1,y = 2,z = 3)
p = Point(**d)
print(p)

输出:

(1, 2, 3)

python观察日志(part16)--收集关键词参数相关推荐

  1. python观察日志(part7)--可变长参数元祖

    学习笔记,有错必纠 可变长参数元祖 函数可以接收不定个数的参数,以*开头的参数名会收集所有的参数到一个元组上,例如,printall接收任意个数的参数并打印它们:: def printall(*arg ...

  2. python观察日志(part22)--设置工作目录及文件读取

    学习笔记,仅供参考 参考自:pandas.read_csv参数详解:<python编程从数据分析到数据编程> 查看并更改当前工作目录 当前工作目录就是python(准确的说,是python ...

  3. python观察日志(part21)--ord,chr,unichr方法的联系与区别

    学习笔记,仅供参考,有错必纠 参考自:python 的 ord(). chr(). unichr() 函数; 菜鸟教程 ord,chr,unichr方法的联系与区别 ord方法 ord方法以一个长度为 ...

  4. python观察日志(part15)--命名元祖namedtuple

    学习笔记,有错必纠 命名元祖namedtuple 有很多简单的对象其实可以看做几个相关值的集合,例如,在下面这段代码中,我们定义Point类,它包含两个数字x和y: class Point:def _ ...

  5. python观察日志(part9)--数据库与pickle模块

    学习笔记,有错必纠 数据库 数据库是一个有组织的用于存储数据的文件,许多数据库都像字典一样组织数据,因为它也将键映射到值上,数据库和字典之间最大的区别是数据库是保存在磁盘上的(或者其他永久存储上),所 ...

  6. python观察日志(part24)--列表和numpy数组扁平化

    学习笔记,仅供参考,有错必究 参考文献:python–列表.数组扁平化:你知道如何将python中嵌套的列表扁平化吗? 列表扁平化 方案1 print(sum([[1, 2, 3], ["s ...

  7. R语言观察日志(part16)--Google‘s R Style Guide

    学习笔记,仅供参考 自翻,有错必究 文章目录 Google's R Style Guide summary R语言风格 R语言规则 符号和命名 文件名 标识符 每行长度(注意) 缩进 空格 花括号 被 ...

  8. python观察日志(part20)--列表中加号,extend,append之间的区别

    学习笔记,仅供参考,有错必纠 列表中"+"加号,extend,append之间的区别 extend extend函数用于在列表末尾一次性追加另一个序列中的多个值. append a ...

  9. python观察日志(part13)--any和all

    学习笔记,有错必纠 any和all any函数 python提供一个内置函数any,它接收一个由布尔值组成的序列,并在其中任何值是True时返回True. 它可以用于列表: >>> ...

最新文章

  1. 升级 ubuntu_Ubuntu 19.04 已经到期!现有用户必须升级到 Ubuntu 19.10
  2. Deepin nginx lumen配置
  3. 编写高性能 Web 应用程序的10个技巧
  4. CStdioFile写文件中出现的问题
  5. 悲剧啊,疑似食物中毒和空气污染
  6. 如何成为一个合格的数据分析师
  7. 软件测试 查看网页打开时间,网页响应时间101(一)
  8. 适合苹果4s的微信版本_6.1.3装上微信了,新手看这里
  9. 多线程服务器的常用编程模型
  10. [VS报错] 应用程序无法正常启动0xc000007b -- 解决措施
  11. 给你一个全自动的屏幕适配方案(基于SW方案)!—— 解放你和UI的双手
  12. Photoshop制作漂亮白色荧光文字图片
  13. QNAP 威联通 NAS的个人使用经验 篇二:QTS系统各功能讲解
  14. 线性代数拾遗(1)—— 行列式的三种公理化构造
  15. 在socket 中使用域名
  16. Vuex是什么?如何理解和应用?
  17. C++基础入门(超详细)
  18. css样式—高度塌陷
  19. 多媒体计算机维修记载,多媒体教学计划(精选3篇)
  20. HP Z840 安装Ubuntu18.04,gpu版的tensorflow,keras全程纪要,硬件Qurado P4000两块

热门文章

  1. CORS 请求未能成功_CORS攻击概述
  2. Eclipse生成get,set方法,无参构造方法和有参构造方法
  3. 自定义ArrayList
  4. VS中生成时“sgen.exe”已退出,代码为 1解决办法
  5. 线段树之线段操作之陈老师的福利
  6. BZOJ4388 : JOI2012 invitation
  7. 磁盘阵列常见故障以及维护注意事项
  8. 移植基于linux-2.6.26.5内核s3c2410触摸屏驱动移植
  9. SharePoint 2010新体验2 – Ribbon界面
  10. MySQL事务的介绍+事务的特性+事务的开启