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

发布于 2021-02-02 23:19:29

究竟什么*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']

您如何有效地使用它们?

关注者
0
被浏览
99
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    *args/**kwargs作为函数定义的参数列表的最后一项放置,可使该函数接受任意数量的参数和/或关键字参数。

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

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

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

    实际上,你不必将它们称为argskwargs,这只是一个约定。这是***该做的魔力。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看