• 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。

  • 相关阅读:
    leetcode回溯总结
    排序算法详解
    Java核心基础知识泛型
    leetcode贪心算法
    Linux虚拟机配置及安装Redis
    HJ6质数因子
    冒泡排序(升序)
    动态规划 背包问题
    配置mycatschema.xml
    HJ106字符逆序
  • 原文地址:https://www.cnblogs.com/gsblog/p/3585937.html
Copyright © 2020-2023  润新知