zoukankan      html  css  js  c++  java
  • *args 和**kwargs 的理解以及 函数的参数的总结

    一:函数参数的理解:

    def 函数名(函数参数):
        函数体
    
    例如:
    def func(a):  # a 是形参
        print(a)
    
    func(123)  # 123 是实参
    
    形参又分为: 关键字参数,位置参数,混合参数
    关键字参数
    def func(x,y,z="默认参数"):
        print(x,y,z)
    
    func(1,y="xumou")  # 1 xumou 默认参数
    '''
    1 代表 位置参数、
    y 代表  关键字参数
    z 代表默认参数
    
    他们之间的关系:关键字参数必须要在位置参数的后面,
    
    位置参数〉关键字参数,默认值参数
    
    '''
    # 接收动态参数的时候,动态参数必须要在位置参数后面
    def func01(a,b,*gg):
    
        print(gg,a,b)
    
    func01(1,2,"34")
    
    # 位置参数和默认值参数:必须先声明位置参数,再声明默认值参数
    def func03(a,c=12):
    
        print(a,c)
    
    func03("AA")  #  AA 12
    
    
    # *pp中的*接收任意动态参数:
    def func03(*pp):
        print(pp)
    func03("q","w","e",22,33)  # ('q', 'w', 'e', 22, 33)
    
    
    # 接受动态参数:位置参数必须要在动态参数
    
    def func04(a,b,*args):
        print("func04>>",a,b,args)
    func04(1,2,5,7)  # func04>> 1 2 (5, 7)
    
    # ----------错误示范:----------
    def func04(*args,a,b):
        print("func04>>",a,b,args)
    func04(1,2,5,7)  # 报错
    
    # --------------------
    
    # 报错:因该改为:
    def func04(*args,a,b):
        print("func04>>",a,b,args)
    func04(1,2,a=5,b=7)  # func04>> 5 7 (1, 2)
    
    
    
    # **kwargs 用来接收动态关键字参数
    def func02(**kwargs):
        print(kwargs)  #  {'a': 12, 'b': 23}  结果是一个dict
    
    func02(a=12,b=23)
    
    
    # 最终的顺序是:
    # 位置参数〉*args〉默认值参数〉**kwargs
  • 相关阅读:
    Python绘图工具Plotly的简单使用
    gitlab runner安装与使用
    Ubuntu16.04下postgresql-10
    gitlab汉化
    Ubuntu 16.04 安装Gitlab
    Ubuntu-18.04安装Docker
    微信公众平台消息接口开发 彩票查询
    微信开发高级群发接口
    微信公众平台消息接口开发 快递查询
    搭建个人wordpress博客(小白教程)
  • 原文地址:https://www.cnblogs.com/one-tom/p/11263786.html
Copyright © 2011-2022 走看看