python教程:可变参数*args 和 **kwargs详解
  0SnbOly3LC5t 2023年11月02日 61 0


可变参数

*args**kwargs 是用于在 Python 函数或方法中处理可变数量的参数的特殊语法。

  • *args 是用于传递不定数量的位置参数(Positional Arguments)。在函数定义中,*args 表示可以接受任意数量的位置参数,并将它们作为一个元组(tuple)传递给函数。调用函数时,可以传递任意数量的位置参数,它们将被打包成一个元组传递给 *args

例如,以下函数接受任意数量的位置参数并将它们相加:

def add_numbers(*args):
    total = 0
    for num in args:
        total += num
    return total

调用方式示例:

result = add_numbers(1, 2, 3, 4)  # result = 10
result = add_numbers(10, 20, 30, 40, 50)  # result = 150
  • **kwargs 是用于传递不定数量的关键字参数(Keyword Arguments)。在函数定义中,**kwargs 表示可以接受任意数量的关键字参数,并将它们作为一个字典(dictionary)传递给函数。调用函数时,可以传递任意数量的关键字参数,它们将被打包成一个字典传递给 **kwargs

例如,以下函数接受任意数量的关键字参数并打印它们的键值对:

def print_kwargs(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")

调用方式示例:

print_kwargs(name="John", age=30, city="New York")
# 输出:
# name: John
# age: 30
# city: New York

需要注意的是,*args**kwargs 可以与其他参数一起使用,但通常放在参数列表的最后。例如:

def example_func(arg1, arg2, *args, **kwargs):
    # 函数体

在函数定义中,参数的顺序应为:必需参数,*args,关键字参数,**kwargs。这样,函数可以接受位置参数、不定数量的位置参数、关键字参数以及不定数量的关键字参数。


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
0SnbOly3LC5t