Python拾珍:9. 收集关键词参数

我们知道如何编写函数将其参数收集成一个元组:

def print_all(*args):
    print(args)

可以使用任意个参数的按位实参(也就是说,不带名称的实参)来调用这个函数:

print_all(1, 2.0, '3')

但是 * 号操作符并不会收集关键词实参:

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

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

def print_all(*args, **kwargs):
    print(args, kwargs)
收集关键词实参,可以使用 ** 操作符

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

调用函数

没有用分散操作符的话,函数会把 d 当作一个单独的按位实参,所以它会把 d 赋值给 x,并因为没有提供 y 的赋值而报错:

因为没有提供 y 的赋值而报错

当处理参数很多的函数时,创建和传递字典来指定常用的选项是非常有用的。

本文参考自《像计算机科学家一样思考Python (第2版)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy阅读 13,148评论 1 51
  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 14,744评论 0 38
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 9,698评论 0 13
  • 产生背景:node需要处理网络协议,操作数据库,处理图片,文件上传等,需要大量的二进制操作。 1.实例化一个buf...
    剁剁爷阅读 3,663评论 0 0
  • 苟利生死以,岂因福祸避趋之。作为人,是一种趋利避害的动物,不管是哪种人,作为整个宇宙中衍生出的唯一物种。虽然能够进...
    胡城Henry阅读 1,885评论 1 2