*args和kwargs是什么意思?

*args和kwargs是什么意思?

究竟是什么*args**kwargs刻薄?

根据Python文档,从表面上看,它以一组参数传递。

def foo(hello, *args):
    print hello    for each in args:
        print eachif __name__ == '__main__':
    foo("LOVE", ["lol", "lololol"])

打印出来:

LOVE['lol', 'lololol']

你如何有效地使用它们?


红颜莎娜
浏览 1147回答 3
3回答

九州编程

放*args和/或**kwargs作为函数定义参数列表中的最后一项,该函数允许该函数接受任意数量的参数和/或关键字参数。例如,如果您想要编写一个返回其所有参数之和的函数,无论您提供了多少参数,您都可以这样编写它:def my_sum(*args):     return sum(args)当您正在重写一个函数,并且希望使用用户传入的任何参数调用原始函数时,它可能更常用于面向对象的编程。你不必给他们打电话args和kwargs那只是个惯例。是因为*和**有魔力的人。正式的Python文档更深入的观察.

慕容3067478

此外,我们使用它们来管理继承。class Super( object ):    def __init__( self, this, that ):        self.this = this        self.that = thatclass Sub( Super ):    def __init__( self, myStuff, *args, **kw ):        super( Sub, self ).__init__( *args, **kw )        self.myStuff= myStuff x= Super( 2.7, 3.1 )y= Sub( "green", 7, 6 )这样,Sub并不真正知道(或关心)超类初始化是什么。如果您意识到需要更改超类,就可以修复这些问题,而不必为每个子类中的细节操心。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python