Python中的*args和**kwargs
初学者在学习 python 函数时可能会遇到
*args和**kwargs,刚开始可能难以理解。这篇文章将简要解释 Python 中的*args和**kwargs。阅读完本文后,将会理解这些概念以及它们在 Python 编程中的用法。
python中的函数
在 Python 编码中,一个很常见的操作是将参数传递给函数以执行特定的任务。而函数被定义时,参数通常限制在特定的数量上。让我们来看一个代码片段,它定义了一个带有两个位置参数的函数来执行简单的加法操作:
1 | |
上面定义的函数仅可接受两个参数,以下是函数调用,其中包含两个参数:
1 | |
输出:
1 | |
没有任何错误。但是,如果传递给它的参数多于或少于两个,它会抛出一个错误。这是函数在编程中的正常工作方式。这很简单,但是如果我们需要定义一个包含不固定数量参数函数该怎么办呢?
我想定义个函数计算多个数字之和
使用\*args
当你需要定义一个函数,该函数接受的位置参数数量不固定,而是必须足够灵活,可以接受任意数量的参数时,这就是*args派上用场的地方。
在Python中,*args通常作为一个元组数据结构,当函数被调用时,它能够容纳传递给它的多个参数。
1 | |
函数调用和结果:
1 | |
使用\**kwargs
另一方面,**kwargs是一种数据结构,用于在函数调用时保存多个关键字参数。
我知道这可能会有点令人困惑,让我使用一个代码片段来解释我所说的关键字参数,我们在上面的代码基础上添加一个percent条件,用于指示是否以百分比形式输出:
1 | |
调用函数:
1 | |
写在最后
*args是元组数据结构,使得函数在调用时能够接受任意数量的位置参数。**kwargs确保使用它定义的函数能够接收多个键值对作为参数,如果要传递字典作为参数,则需要使用两个前置的星号**进行解包。举例如下:1
2
3
4
5
6
7def example_function(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
# 创建一个字典
my_dict = {'name': 'Alice', 'age': 30, 'city': 'Beijing'}
# 使用**来解包字典,并传递给函数
example_function(**my_dict)1
2
3
4# 输出结果
name: Alice
age: 30
city: Beijing
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Lucky_Jesbin's Lab!





