Python中*args 和**kwargs的用法

转载 2015年07月08日 09:30:37

http://blog.csdn.net/chenjinyu_tang/article/details/8136841


好久没有学习python了,应为工作的需要,再次拾起python,唤起记忆。

当函数的参数不确定时,可以使用*args 和**kwargs,*args 没有key值,**kwargs有key值。

还是直接来代码吧,废话少说

  1. def fun_var_args(farg, *args):  
  2.     print "arg:", farg  
  3.     for value in args:  
  4.         print "another arg:", value  
  5.   
  6. fun_var_args(1"two"3# *args可以当作可容纳多个变量组成的list  
result:

  1. arg: 1  
  2. another arg: two  
  3. another arg: 3  

**kwargs:

  1. def fun_var_kwargs(farg, **kwargs):  
  2.     print "arg:", farg  
  3.     for key in kwargs:  
  4.         print "another keyword arg: %s: %s" % (key, kwargs[key])  
  5.   
  6.   
  7. fun_var_kwargs(farg=1, myarg2="two", myarg3=3# myarg2和myarg3被视为key, 感觉**kwargs可以当作容纳多个key和value的dictionary  

result:

  1. arg: 1  
  2. another keyword arg: myarg2: two  
  3. another keyword arg: myarg3: 3  
也可以用下面的形式:

  1. def fun_var_args_call(arg1, arg2, arg3):  
  2.     print "arg1:", arg1  
  3.     print "arg2:", arg2  
  4.     print "arg3:", arg3  
  5.   
  6. args = ["two"3#list  
  7.   
  8. fun_var_args_call(1, *args)  
result:

  1. arg1: 1  
  2. arg2: two  
  3. arg3: 3  

  1. def fun_var_args_call(arg1, arg2, arg3):  
  2.     print "arg1:", arg1  
  3.     print "arg2:", arg2  
  4.     print "arg3:", arg3  
  5.   
  6. kwargs = {"arg3"3"arg2""two"# dictionary  
  7.   
  8. fun_var_args_call(1, **kwargs)  
result:

  1. arg1: 1  
  2. arg2:"two"  
  3. arg3:3  


Python中*args 和**kwargs的用法探讨

当函数的参数不确定时,可以使用*args 和**kwargs,*args 没有key值,**kwargs有key值。不确定的意思可以是有,有几个,也可以是没有 *args可以当作可容纳多个变量组成的l...
  • tao_627
  • tao_627
  • 2015年10月31日 13:56
  • 5535

python中*args 和 **kwargs 的用法学习笔记

*args 和 **kwargs 主要用于函数定义。 你可以将不定数量的参数传递给一个函数。 1、*args 是用来发送一个(非键值对)可变数量的参数列表给一个函数. 这里有个例子帮你理解这个概念...
  • mbugatti
  • mbugatti
  • 2016年12月26日 11:07
  • 2438

Python中 *args 和 **kwargs 的区别

先来看个例子:def foo(*args, **kwargs): print 'args = ', args print 'kwargs = ', kwargs print '...
  • violet_echo_0908
  • violet_echo_0908
  • 2016年10月13日 14:34
  • 3421

【python学习笔记】Python中*args 和**kwargs的用法

Python中*args 和**kwargs的用法 说明python中默认缺省参数,参数名传参,可变长度传参。缺省参数def foo(a,b=8): print a,bfoo("leason"...
  • qq_29287973
  • qq_29287973
  • 2017年09月20日 14:16
  • 1439

python 装饰器 中的 *args 和 **kwargs

python 中的装饰器 def decora(func): def wrap(): print 's' func() return wrap @d...
  • shengweisong
  • shengweisong
  • 2016年05月09日 16:12
  • 848

python中*args与**kwargs

首先我们应该知道,并不是必须写成*args和**kwargs,变量前面的*才是必须的,你可以写成*var和**vars,而写成*args和**kwargs只是一个通俗的命名约定。 *args和**...
  • u013362975
  • u013362975
  • 2016年12月05日 14:35
  • 506

Python 进阶----*args和 **kwargs,装饰器 的用法

# args 的用法 def test_var_args(f_arg,*argv): print("first normal arg:",f_arg) for arg in argv: pri...
  • qq_28359387
  • qq_28359387
  • 2017年09月18日 12:49
  • 331

Python定义的函数(或调用)中参数*args 和**kwargs的用法

出处:http://blog.csdn.net/chenjinyu_tang/article/details/8136841 Python中*args 和**kwargs的用法 当函...
  • u010852680
  • u010852680
  • 2017年09月05日 10:39
  • 491

Python中func(*args, **kwargs)的参数问题

Python中func(*args, **kwargs)的参数问题
  • u012269327
  • u012269327
  • 2017年03月14日 17:44
  • 813

python 中参数*args, **kwargs

python 中参数*args, **kwargs def foo(*args, **kwargs): print 'args = ', args print 'kwargs = ', ...
  • anhuidelinger
  • anhuidelinger
  • 2013年08月16日 20:57
  • 10672
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Python中*args 和**kwargs的用法
举报原因:
原因补充:

(最多只允许输入30个字)