为了账号安全,请及时绑定邮箱和手机立即绑定

*args和kwargs是什么意思?

*args和kwargs是什么意思?

红颜莎娜 2019-06-25 13:10:39
*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']你如何有效地使用它们?
查看完整描述

3 回答

?
九州编程

TA贡献1785条经验 获得超4个赞

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

例如,如果您想要编写一个返回其所有参数之和的函数,无论您提供了多少参数,您都可以这样编写它:

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

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

你不必给他们打电话argskwargs那只是个惯例。是因为***有魔力的人。

正式的Python文档更深入的观察.


查看完整回答
反对 回复 2019-06-25
?
慕容3067478

TA贡献1773条经验 获得超3个赞

此外,我们使用它们来管理继承。

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并不真正知道(或关心)超类初始化是什么。如果您意识到需要更改超类,就可以修复这些问题,而不必为每个子类中的细节操心。


查看完整回答
反对 回复 2019-06-25
  • 3 回答
  • 0 关注
  • 1146 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信