python - *args 和 **kwargs 是什么意思?

标签 python

*args**kwargs 到底是什么意思?

根据 Python 文档,从表面上看,它传入了一个参数元组。

def foo(hello, *args):
    print(hello)

    for each in args:
        print(each)

if __name__ == '__main__':
    foo("LOVE", ["lol", "lololol"])

打印出来:

LOVE
['lol', 'lololol']

你如何有效地使用它们?

最佳答案

*args 和/或 **kwargs 作为函数定义参数列表中的最后一项允许该函数接受任意数量的参数和/或关键字论据。

例如,如果你想编写一个返回所有参数总和的函数,无论你提供多少,你都可以这样写:

def my_sum(*args):
    return sum(args)

它可能更常用于面向对象的编程中,当您重写一个函数并希望使用用户传入的任何参数调用原始函数时。

您实际上不必将它们称为 argskwargs,这只是一个约定。 *** 发挥了作用。

官方 Python 文档有 a more in-depth look .

关于python - *args 和 **kwargs 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/287085/

相关文章:

python - 将元组的结果添加到多个字符串

python - 在 VS Code 终端中显示耗时

javascript - 如何使用 cgi python 脚本获取基本身份验证用户名?

python - 速率限制api多进程

python - Celery + RabbitMQ - 使用 Celery 进行简单消息传递

python - 建议在 python 中使用独特的随机字符串生成器??

python - 比较 Pandas 列中的 float

python - QGIS 渲染 shapefile 时如何让 Python 等待

python - 使用异常来控制代码流

python - gtk3 和 pygobject 的自动完成