蓝易云 - python 教程:可变参数 *args 和 **kwargs 详解
![蓝易云 - python教程:可变参数*args 和 **kwargs详解](https://static001.geekbang.org/infoq/72/728c6564e3303f65e799c07f7c16cad1.jpeg)
在 Python 编程中,你可能会遇到一些函数,它们需要处理数量不确定的参数。这时候就需要用到 Python 的可变参数 args 和*kwargs。这两个神秘的符号其实是 Python 中非常强大且灵活的工具,它们可以帮助你创建更加通用和灵活性强大的函数。
![](https://static001.geekbang.org/infoq/23/2363af2d834f47878e0091411a698b46.png)
首先我们来看看 args。在 Python 中,“”符号是一个解包运算符,而“args”只是一个常用名字,并没有特殊含义。“*args”通常被用来传递数量不确定、非键值对形式(即位置参数)给函数。
让我们通过一个例子来理解一下:
在上述代码中,“nums”实际上就是一个元组(tuple),包含了所有传入 add()函数内部作为位置参数(即按照顺序)给出的值。
接下来让我们探索 kwargs。“kwargs”的“”也同样表示解包运算符,“kwargs”的全称为 keyword arguments(关键字参数)。“kwargs"被使用于传递数量不定、键值对形式(即关键字参数)给函数。
再次通过例子理解:
在这个例子中,“person”实际上是一个字典(dictionary),包含了所有传入 introduce()函数内部作为关键字参数给出的值。
args 和 kwargs 可以同时使用在一个函数中,但是 args 必须出现在 kwargs 前面。这是因为位置参数必须出现在关键字参数前面。
此外,你还可以使用和*来解包序列和映射类型的数据:
总结一下,Python 中的可变参数 args 用于接收数量不定的非键值对形式(位置)参数;而可变参数*kwargs 用于接收数量不定、键值对形式(关键字)的数据。它们都能帮助我们创建更加灵活、通用性强大的函数。希望你能通过本文理解并掌握这两个重要的 Python 编程工具。
云服务器推荐
蓝易云国内/海外高防云服务器推荐
蓝易云-五网CN2服务器【点我购买】蓝易云采用KVM高性能架构,稳定可靠,安全无忧!蓝易云服务器真实CN2回国线路,不伪造,只做高质量海外服务器。
海外免备案云服务器链接:www.tsyvps.com
蓝易云香港五网 CN2 GIA/GT 精品网络服务器。拒绝绕路,拒绝不稳定。
评论