python的*args和**kwargs基础用法

*args表示任何多个无名参数,它是一个tuple

**kwargs:传入的字典,就如:a=1,传入键值,默认就传入到**kwargs中,如下面代码:

class FOO:
    def __init__(self):
        pass
    def __call__(self,*args,**kwargs):
        print "__call__"
        for value in args:#直接显示内容
            print "anther,args:",value
        print u"以下是做累加计数"
        print  sum(args)+sum(kwargs.values())  #做累加

obj=FOO()
obj(1,2,3,a=1)#args作为容纳的变量的list

显示为:

可以看到在1,2,3中是默认传入到了args中,a=1,就传入到**kwargs中,而7则是1+2+3+1的结果,

时间: 2024-08-02 17:16:26

python的*args和**kwargs基础用法的相关文章

python基础-python中*args和**kwargs的用法

当函数的参数不确定时,可以使用*args 和**kwargs,*args 没有key值,**kwargs有key值 *args 可以容纳多个变量组成的list 1 def test2(name,age,gender): 2 print(name) 3 print(age) 4 print(gender) 5 6 def test1(*args,**kwargs): 7 test2(*args,**kwargs) 8 9 test1('alex', 18, 'male') #这三个参数,全部传给了

Python中*args 和**kwargs的用法

from:http://blog.csdn.net/chenjinyu_tang/article/details/8136841 好久没有学习python了,应为工作的需要,再次拾起python,唤起记忆. 当函数的参数不确定时,可以使用*args 和**kwargs,*args 没有key值,**kwargs有key值. 还是直接来代码吧,废话少说 [python] view plaincopyprint? def fun_var_args(farg, *args): print "arg:&

学习python的*args和 **kwargs

*args表示任何多个无名参数,它是一个tuple(元组):**kwargs表示关键字参数,它是一个dict(字典) 1 def foo(*args, **kwargs): 2 print 'args = ', args 3 print 'kwargs = ', kwargs 4 print '###' 5 if __name__ == '__main__': 6 foo(1,2,3,4) 7 foo(a=1,b=2,c=3) 8 foo(1,2,3,4, a=1,b=2,c=3) 9 foo(

python 中*args 和 **kwargs

简单的可以理解为python 中给函数传递的可变参数,args 是 列表的形式.kwargs 是 key,value的形式,也就是python 中的字典. *args 必须出现在**kwargs 的前边,否则会抛异常. 1 def test(*args, **kwargs): 2 print args 3 print kwargs 1 if __name__ == '__main__': 2 print '---test 1---' 3 test(1, 2, 3) 4 print '---tes

Python中*args,**kwargs的使用

今天看到一个外国人写的一篇关于*args,与**kwargs如何使用的总结,非常有学习价值,尤其是他给出了一个继承之后重写父类方法的例子,可以很好的解决多重继承中参数传递的问题,看完之后,自己也实验了一下.原文链接http://agiliq.com/blog/2012/06/understanding-args-and-kwargs/. 原文如下: When i started learning Python, i was very confused regarding what args, k

Python的*args与**kwargs

当Python的函数的参数不确定时,可以使用*args与**kwargs来指代不定数量的参数. 两者的区别是,*args是个tuple(元组),而**kwargs是个dict(字典).更简单的说,就是*args不带key,**kwargs带key. 先通过代码来验证上述的结论是否正确: def func_args(*args): print(type(args)) def func_kwargs(**kwargs): print(type(kwargs)) if __name__ == '__m

*args和**kwargs的用法

从实参角度,看*args的用法: 按位置传值,多出来的值,会被*统一接收,保存成元组的形式.并赋值给args. *args需要放到位置参数x的后面 *args与y=1一般不会放到一起用 args=元组() *args=*(x,y,z) *当成位置参数看 **当成关键字来看 def foo(x,*grgs): #args=(2,3,4,5,6,'a','b') print(x) print(args) foo(1,2,3,4,5,6,'a','b') def foo(x,y=1,*args): p

Python中*args和**kwargs的区别

(注:本文部分内容摘自互联网,由于作者水平有限,不足之处,还望留言指正.) 中秋的夜,微凉,但却始终看不见月亮. 我想,它一定是害羞了,悄悄的躲到了乌云的后面. 嗯,就是这样,我真是太TM机智了. 正文: 注:<python核心编程第2版>的11.6可变长度的参数---章节中有详细介绍. 一.*args的使用方法 *args 用来将参数打包成tuple给函数体调用 例子一: def function(*args): print(args, type(args)) function(1) 输出结

python中*args和**kwargs学习

*args 和 **kwargs 经常看到,但是一脸懵逼 ,今天终于有收获了 """ python 函数的入参经常能看到这样一种情况 *args 或者是 **kwargs 但是它们到底是啥意思呢? 代码能说明一切 """ def hello(*args, **kwargs): print(args) # ('小明', 25, '男', '中国银行') print(kwargs) # {} hello('小明', 25, '男', '中国银行')