| 本文和大家分享的主要是python中*args和**kwargs相关内容,一起来看看吧,希望对大家学习python有所帮助。 函数定义 在Python的函数定义中使用*args和**kwargs可传递可变参数。*args用作传递非命名键值可变长参数列表(位置参数),**kwargs用作传递键值可变长参数列表。 当你不确定你的函数里将要传递多少参数时你可以用*args.例如,它可以传递任意数量的参数,*args 示例: deftest_var_args(farg, *args): print "formal arg:", farg for argin args: print "another arg:", arg test_var_args(1, "two", 3) 结果: formalarg: 1anotherarg: twoanotherarg: 3 相似的,**kwargs允许你使用没有事先定义的参数名,**kwargs示例: deftest_var_kwargs(farg, **kwargs): print "formal arg:", farg for keyin kwargs: print "another keyword arg: %s: %s" % (key, kwargs[key]) test_var_kwargs(farg=1, myarg2="two", myarg3=3) 结果: formalarg: 1anotherkeywordarg: myarg2: twoanotherkeywordarg: myarg3: 3 *args和**kwargs也可以混合使用,需要注意的是,*args需要放在**kwargs前面: deftest_kwargs(first, *args, **kwargs): print 'Required argument: ', first for v in args: print 'Optional argument (*args): ', v for k, v in kwargs.items(): print 'Optional argument %s (*kwargs): %s' % (k, v) test_kwargs(1, 2, 3, 4, k1=5, k2=6) 结果: Requiredargument: 1 Optionalargument (*args): 2 Optionalargument (*args): 3 Optionalargument (*args): 4 Optionalargumentk2 (*kwargs): 6 Optionalargumentk1 (*kwargs): 5 函数调用 这种语法不仅在函数定义中可以使用,在调用函数是也会出现(相当于extract package的效果) *args 示例: deftest_var_args_call(arg1, arg2, arg3): print "arg1:", arg1 print "arg2:", arg2 print "arg3:", arg3 args = ("two", 3) test_var_args_call(1, *args) 结果: arg1: 1arg2: twoarg3: 3 **kwargs示例: deftest_var_args_call(arg1, arg2, arg3): print "arg1:", arg1 print "arg2:", arg2 print "arg3:", arg3 kwargs = {"arg3": 3, "arg2": "two"} test_var_args_call(1, **kwargs) 结果: arg1: 1 arg2: two arg3: 3 来源:标点符 |
详细解决方案
Python学习之*args和**kwargs
热度:91 发布时间:2023-12-23 20:44:50.0
相关解决方案
- ubuntu9.04上安装mic2 出错 (python setup.py build)
- ubuntu9.04下安装mic2 出错 (python setup.py build),该如何解决
- 请教如何理解JAVA、C++ Perl、PHP、Ruby、Python
- python sybase装配
- python(django框架) + mysql 的编码有关问题,求解
- String []args和String args []有什么区别?
- SAE python web.py bootstrap 开发记要
- 数目字代码把大数据数字口语化(python+js) 数字代码
- this.fun.apply(this,args)的有关问题
- python JSON string 的中文有关问题
- python――施用yaml数据格式,PK -> XML,JSON
- Learn Python The Hard Way学习(52) - 开始您的web游戏
- Python 相关有关问题
- 菜鸟,先学JAVA,还是Ruby,python
- public static void main(String[] args)解决办法
- public static void main(String[] args);这句话是否每个java程序都必须有
- 生手之前对编程无概念现在想转这行,想尽快入门,java ,python,net、php、C之间如
- public static void main(String\u005B\u005D args)这是什么,该怎么解决
- java中main方法形参String[] args 有什么作用?该如何处理
- public static void main (String[] args)各单词的意思解决办法
- public static void main(String[] args)解决方法
- 很简单的有关问题! 怎样调用 public static void main(String[] args)里面的结果
- public static void main(String args[]) 里有点不解解决办法
- 这种函数声明是什么意思:void test(String s, Object. args) {}解决思路
- 【大哥大姐】python 操作MS SQL Server 2005 效率
- python serial模块运用
- python scp自动登录解决方法
- 【Python】按行读取文件、IOError: [Errno 22] invalid mode ('a+') or filename,处置文件的换行符
- Python 3.x中使用print函数出现语法异常(SyntaxError: invalid syntax)的原因
- 【Error】Python安装gevent时出错:“致命异常: Python.h:没有那个文件或目录”