zoukankan      html  css  js  c++  java
  • python关键字参数

    可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple。而关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。

    def person(name, age, **kw):
        print 'name:',name,'age:',age,'other:',kw
    
    def test(a,b,**kwargs):
        print a,b,kwargs
    if __name__ == '__main__':
        person('Gs',28)
        person('Gs',28,city='Xuzhou',school='hangzhou')

    关键字参数有什么用?它可以扩展函数的功能。比如,在person函数里,我们保证能接收到nameage这两个参数,但是,如果调用者愿意提供更多的参数,我们也能收到。试想你正在做一个用户注册的功能,除了用户名和年龄是必填项外,其他都是可选项,利用关键字参数来定义这个函数就能满足注册的需求。

        kw={'city':'Xuzhou','school':'hangzhou'}
        person('Gs',28,**kw)

    通过一个tuple和dict,你也可以调用该函数:

    def person(name, age,*args, **kw):
        print 'name:',name,'age:',age,'args:',args,'kw:',kw
    
    if __name__ == '__main__':
        args = (1, 2, 3)
        kw={'city':'Xuzhou','school':'hangzhou'}
        person('Gs',28,*args,**kw)

    所以,对于任意函数,都可以通过类似func(*args, **kw)的形式调用它,无论它的参数是如何定义的。

    要注意定义可变参数和关键字参数的语法:

    *args是可变参数,args接收的是一个tuple;

    **kw是关键字参数,kw接收的是一个dict。

  • 相关阅读:
    react 中cookie的使用
    使用react-router-dom 来搭建react路由
    取消浏览器的自动缓存
    vue 的$nextTick方法,与$set()方法
    vue监听data以及prop中的参数变化
    iview树的修改某个节点,树刷新后自动展开你刚才展开的所有节点
    Linux vim常用命令
    Linux yum源配置
    博客园鼠标点击特效
    Linux 简介
  • 原文地址:https://www.cnblogs.com/gsblog/p/3585937.html
Copyright © 2011-2022 走看看