zoukankan      html  css  js  c++  java
  • Python参数组合

    参数定义的顺序必须是:①必选参数、②默认参数、③可选参数、④命名关键字参数、⑤关键字参数

    1 #a,b为必选参数;c为默认参数;args为可变参数;kw为关键字参数
    2 def f1(a,b,c=0,*args,**kw):
    3     print('a=','b=',b,'c=','args=',args,'kw=',kw)
    4 
    5 #参数定义的顺序必须是:必选参数、默认参数、可选参数、命名关键字参数、关键字参数
    6 def f2(a,b,c=0,*,d,**kw):
    7     print('a=','b=',b,'c=','d=',d,'kw=',kw)

     调用

    f1(1,2)
    f1(1,2,3)
    f1(1,2,c=3)
    f1(1,2,3,'a','b')
    f1(1,2,3,'a','b',x=99,y=88,z=77,t='100')
    f2(1, 2, city='Shanghai', ext=None)

    调用结果

    a= 1 b= 2 c= 0 args= () kw= {}
    a= 1 b= 2 c= 3 args= () kw= {}
    a= 1 b= 2 c= 3 args= () kw= {}
    a= 1 b= 2 c= 3 args= ('a', 'b') kw= {}
    a= 1 b= 2 c= 3 args= ('a', 'b') kw= {'x': 99, 'y': 88, 'z': 77, 't': '100'}
    a= 1 b= 2 c= 0 city= Shanghai kw= {'ext': None}

     以list或dict参数传入

    args=(1,2,3,4)
    kw={'Nation':'China','City':'Shanghai'}
    f1(*args,**kw)
    
    args=(1,2,3)
    kw={'y':33,'city':'Shanghai'}
    f2(*args,**kw)

    结果

    a= 1 b= 2 c= 3 args= (4,) kw= {'City': 'Shanghai', 'Nation': 'China'}
    a= 1 b= 2 c= 3 city= Shanghai kw= {'y': 33}

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

  • 相关阅读:
    MySQL 实训篇
    MySQL 操作部分
    MySQL 数据库设计部分
    Python Excel及setuptool安装
    泛型? extents super
    js中立即执行
    js的闭包
    js作用域与作用域链
    js编译和执行顺序
    文件下载
  • 原文地址:https://www.cnblogs.com/frankyou/p/5724957.html
Copyright © 2011-2022 走看看