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

  • *args
def fun_var_args(farg, *args):
print "arg:", farg
for value in args: # *args可以当作可容纳多个变量组成的list
print "another arg:", value fun_var_args(1,'aa',123,'bb')
#输出
arg: 1
another arg: aa
another arg: 123
another arg: bb
  • **kw
def fun_var_kw(farg, **kw):
print "arg:", farg
for key in kw: #**kwargs可以当作容纳多个key和value的dictionary
print "another keyword arg: %s: %s" % (key, kw[key]) fun_var_kw(1,a='aa',c=123,b='bb')
  • 两者同时使用
def fun_var_arg_and_kw(farg, *args, **kw):
print "arg:", farg
for value in args:
print "another arg:", value
for key in kw:
print "another keyword arg: %s: %s" % (key, kw[key]) fun_var_arg_and_kw(1,'qq','ww','ee',a='aa',c=123,b='bb')

Python *args **kw的更多相关文章

  1. Python之*args,**kw

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #021ca1; background-color: #8e352 ...

  2. Python-可变参数和关键字参数(*args **kw)

    前言: Python的函数具有非常灵活的参数形态,既可以实现简单的调用,又可以传入非常复杂的参数. 可变参数和关键字参数的语法: *args是可变参数,args接收的是一个tuple: **kw是关键 ...

  3. python *args **kwargs

    简单来说,当你传入的参数不能确定是几个的时候会用到 *args和**kwargs,这里星号后边只是个代号,你写成a也可以. 而这两者的区别是 如果是键值对就要用后者,反之前者就可以. 同时还可以用(a ...

  4. python args kwargs 传递参数的区别

    先来看个例子: def foo(*args, **kwargs): print 'args = ', args print 'kwargs = ', kwargs print '----------- ...

  5. Python *args 和 **kwargs用法

    *args的参数形式把剩下的没有关键字的参数收起来形成一个tuple,*kwargs把有关键字的收起来做成一个字典 def this_fun(a,b,*args,**kwargs): print a ...

  6. Python args **kwargs作用

    python当函数的参数不确定时,可以使用*args和**kwargs,*args用于捕获所有no keyword参数,它是一个tuple.**kwargs捕获所有keyword参数,它是一个dict ...

  7. python * args和** kwargs的用法

    所属网站分类: python基础 > 函数 作者:慧雅 链接: http://www.pythonheidong.com/blog/article/18/ 来源:python黑洞网 www.py ...

  8. python/*args和**kwargs

    *args和**kwargs #coding=utf8 __author__ = 'Administrator' # 当函数的参数不确定时,可以使用*args和**kwargs.*args没有key值 ...

  9. Python args kwargs 技巧

    def f(*args): print(args) a=[1, 2, 3] f(a) f(*a) 运行结果: ([1, 2, 3],) (1, 2, 3) def f(**kwargs): print ...

随机推荐

  1. Python 爬虫入门(一)

    毕设是做爬虫相关的,本来想的是用java写,也写了几个爬虫,其中一个是爬网易云音乐的用户信息,爬了大概100多万,效果不是太满意.之前听说Python这方面比较强,就想用Python试试,之前也没用过 ...

  2. Python【yagmail】模块发邮件

    #步骤一:import yagmail #步骤二:实例化一个发邮件的对象username = '553637138@qq.com' #邮箱账号pwd='sa2008' #授权码mail = yagma ...

  3. ElasticStack系列之十一 & 同步 mysql 数据的实践与思考

    问题 1. jdbc-input-plugin 只能实现数据库的追加,对于 elasticsearch 增量写入,但经常 jdbc 源一端的数据库可能会做数据库删除或者更新操作.这样一来数据库与搜索引 ...

  4. OpenStack介绍(一)

    官方网站:http://www.openstack.org/ 介绍 OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开 ...

  5. weUI框架在github下载地址

    1.公众号样式UI库的下载地址: https://github.com/Tencent/weui 2.微信小程序UI库的下载地址:https://github.com/Tencent/weui-wxs ...

  6. np.diff函数

    np.diff函数 觉得有用的话,欢迎一起讨论相互学习~Follow Me 数组中a[n]-a[n-1] import numpy as np a=np.array([1, 6, 7, 8, 12]) ...

  7. vsCode开发java遇到的问题整理、解决方案(持续更新)

    获取控制台输入的信息: 休息launch.json文件中的console属性internalConsole(内部控制台)修改为externalTerminal(外部控制台)即可正常获取输入信息,代码如 ...

  8. Intellij IDEA设置及快捷键使用总结

    1. IDEA内存优化 先看看你机器本身的配置而配置. \IntelliJ IDEA 8\bin\idea.exe.vmoptions -------------------------------- ...

  9. Mac下MySQL的卸载

    先停止所有mysql有关进程. 打开控制台一次复制下列所有内容: sudo rm /usr/local/mysql sudo rm -rf /usr/local/mysql* sudo rm -rf ...

  10. 判别式模型 vs. 生成式模型

    1. 简介 生成式模型(generative model)会对\(x\)和\(y\)的联合分布\(p(x,y)\)进行建模,然后通过贝叶斯公式来求得\(p(y|x)\), 最后选取使得\(p(y|x) ...