python中的*args 和**kwargs

*args是可变长参数,在函数内部以tuple形式存储;

def fun_var_args(farg, *args):
    print "arg:", farg
    print(type(args))

>>> fun_var_args(1, ‘two‘, 3)
arg: 1
<type ‘tuple‘>

def fun_var_args(farg, *args):
    print "arg:", farg
    for value in args:
        print "another arg:", value 

>>>fun_var_args(1, "two",3)

arg: 1
another arg: two
another arg: 3

对于参数**kwargs,输入时要指定key和value

def fun_var_kwargs(farg, **kwargs):
    print "arg:", farg
    for key in kwargs:
        print "another keyword arg: %s: %s" % (key, kwargs[key])

>>>fun_var_kwargs(farg=1, myarg2=‘two‘, myarg3=3)

arg: 1
another keyword arg: myarg2: two
another keyword arg: myarg3: 3

参数kwargs在函数内部存储为dict:

def fun_var_kwargs(farg, **kwargs):
    print "arg:", farg
    print(type(kwargs))

>>>fun_var_kwargs(farg=1, myarg2=‘two‘, myarg3=3)
arg: 1
<type ‘dict‘>

原文地址:https://www.cnblogs.com/HITSZ/p/9172931.html

时间: 2024-10-08 22:03:46

python中的*args 和**kwargs的相关文章

(转)Python中的*args和**kwargs

本文转自:http://kodango.com/variable-arguments-in-python 作者:团子的小窝 Python是支持可变参数的,最简单的方法莫过于使用默认参数,例如: def test_defargs(one, two = 2): print 'Required argument: ', one print 'Optional argument: ', two test_defargs(1) # result: # Required argument: 1 # Opti

理解 Python 中的 *args 和 **kwargs

Python是支持可变参数的,最简单的方法莫过于使用默认参数,例如: def test_defargs(one, two = 2): print 'Required argument: ', one print 'Optional argument: ', two test_defargs(1) # result: # Required argument: 1 # Optional argument: 2 test_defargs(1, 3) # result: # Required argum

python中的*args和**kwargs

def foo(*args,**kwagrs): print('args=',args) print('kwargs=',kwagrs) print('------------------')if __name__=='__main__':#用来做输出的 foo(1,2,3,4) foo(a=1,b=2,c=3) foo(1,2,3,4,a=1,b=2,c=3) foo('a',1,None,a=1,b='2',c=3)#*kwargs用来接收关键字传参其余类型都由*args接收 *args和*

Python中的args和kwargs

有时,你会看到python中定义函数的时候带有两个奇怪的参数:*args.**kwargs.如果你曾经想知道它们是干什么的,或者想知道你的IDE为什么在main()函数中定义它们,那么本文可以帮助到你.本文会告诉你在python中如何使用args和kwargs,来增加函数的灵活性. 1.传递多个参数给函数*args和*kwargs允许你给一个参数传递多个参数或者keyword参数.考虑下面的例子.这是一个简单的函数,需要获取两个参数并返回它们之和: def my_sum(a, b): retur

python 中参数*args, **kwargs

python 中参数*args, **kwargs def foo(*args, **kwargs): print 'args = ', args print 'kwargs = ', kwargs print '---------------------------------------' if __name__ == '__main__': foo(1,2,3,4) foo(a=1,b=2,c=3) foo(1,2,3,4, a=1,b=2,c=3) foo('a', 1, None, a

Python : 什么是*args和**kwargs[转载]

例子 def foo(*args, **kwargs):print 'args = ', argsprint 'kwargs = ', kwargsprint '---------------------------------------'if __name__ == '__main__':foo(1,2,3,4)foo(a=1,b=2,c=3)foo(1,2,3,4, a=1,b=2,c=3)foo('a', 1, None, a=1, b='2', c=3)输出结果如下:args =  (

转:Python: 什么是*args和**kwargs

今天看源码的时候发现一个是*args和**kwargs,一看就能知道args是神马,就是所有参数的数组,kwargs就不知道了,google一下,一个人的blog写的比较简单明了,秒懂了~~kwargs就是当你传入key=value是存储的字典. 补充一下:kwargs不影响参数位置 例子: def test(a,*args,**kwargs): print a #print b #print c print args print kwargs test(1,2,3,d='4',e=5) 输出结

Python: 什么是*args和**kwargs

好像似懂非懂这两个单词很久很久了 转一篇文章.https://www.cnblogs.com/zhangzhuozheng/p/8053045.html 今天看源码的时候发现一个是*args和**kwargs,一看就能知道args是神马,就是所有参数的数组,kwargs就不知道了,google一下,一个人的blog写的比较简单明了,秒懂了~~kwargs就是当你传入key=value是存储的字典. 补充一下:kwargs不影响参数位置 例子: def test(a,*args,**kwargs)

Python中的*args和**kwarg

可变参数 *args 允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple, 而 关键字参数 **kw 允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict. 可变参数*args def calc(*numbers): sum = 0 for n in numbers: sum = sum + n*n return sum calc(1, 2) calc() 另一种用法: numbers = [1, 2, 3] calc(numbers[0