美文网首页pythonPython小哥哥
Python之 可变参数和关键字参数

Python之 可变参数和关键字参数

作者: 我爱学python | 来源:发表于2019-06-05 17:01 被阅读46次

刚开始接触 python 的时候,对 python 中的 *wargs (可变参数) 和 **kwargs (关键字参数)的理解不是很透彻,看了一下 《Explore Python》一书,里面对这一部分的描述相对浅显易懂, 这里依据个人理解进行相关总结。

可变参数(*args)

对于可变参数可以联想到 C# 中的可变参数。可变参数是一个数量不确定的列表集合,可以是 list 类型,也可以是 tuple 类型

我们定义如下代码段:

通过运行上述代码,我们可以看出,无论我们是需要传递一个 list 集合还是 tuple 集合,在可变参数对应的函数内部都会作为 tuple 类型来处理。此外,我们还需要注意的是,我们需要传递的是集合的指针,而不是该集合对象,这是因为在 python 中,默认通过引用(也就是指针)进行函数的参数传递,这样做避免创建多个拷贝,并且能够按照方便地更新这些对象。

由于在含可变参数的函数内部,可变参数是作为 tuple 类型来处理的, 因此我们无法对其进行修改。我们可以通过创建一个 list 类型的集合临时变量,然后通过这个临时变量实现对传入的可变参数进行修改。

关键字参数(**kwargs)

关键字参数是一个由键值对组成的集合,允许通过变量名进行匹配,而不是位置。

我们定义如下代码段:

运行上述代码,我们可以看出,kwargs 的类型为 dict ,因此我们需要用过 key-value 的方式来进行访问。当我们访问的 key 不在该参数列表中程序会发生响应。

综合运用


总结

*args 和 **kwargs 并不是 python 中的参数关键字,而是一种惯用写法。

在 python 中,函数参数主要分为:必选参数,默认参数,可变参数,关键字参数。必选参数必须赋值;默认参数可赋可不赋,如不赋值则传递默认的数值;可变参数传递的是一个参数列表,列表中的元素数量不确定;关键字参数是一个键值对集合,通过键值对的方式来进行数值传递。它们之间的排列顺序为:必选参数 -> 默认参数 -> 可变参数 -> 关键字参数。

相关文章

  • python---函数参数

    python---函数参数 在Python中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参...

  • Python实战:函数

    Python中函数的声明格式: 例如: 函数的调用: 关于位置参数、关键字参数、可变参数和不可变参数 位置参数:参...

  • python-调用函数(3)

    参数组合 在Python中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数,这5种参数都可...

  • python个人学习——函数

    函数的参数 在Python中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数,这5种参数都...

  • Python之函数的参数

    Python中函数的参数有五种:位置参数(必选参数)、默认参数、可变参数、关键字参数、命名关键字参数。 位置参数 ...

  • Python函数的参数(详细版)

    函数的参数有:必选参数、默认参数、可变参数、关键字参数。 在Python中定义函数,可以用必选参数、默认参数、可变...

  • Python:函数的参数(参数组合)

    在Python中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数,这5种参数都可以组合使用...

  • Python 那些不为人知的冷知识

    1、默认参数最好不为可变对象 函数的参数分三种 可变参数 默认参数 关键字参数 Python 中的 def 语句在...

  • 函数的,参数,变量作用域,递归,匿名函数

    一:函数参数的介绍 1:可变和不可变参数 1.1:必选参数 1.2:默认参数 1.3:可变参数 1.4:关键字参数...

  • python函数回顾

    1.参数的介绍 (1)可变和不可变参数 (2)必选参数 (3)默认参数 (4)可变参数 (5)关键字参数 1.1....

网友评论

    本文标题:Python之 可变参数和关键字参数

    本文链接:https://www.haomeiwen.com/subject/vxlsxctx.html