• python*args和**kwargs作用和区别


    1. *args

    不定长的参数:*args 无论你传递一个参数还是二个还是多个都可以。(*args传入的是无命名参数,例如:add(1,2,3,4,5)存储的是元祖)args可以自定义其他名称

    def add(*args):
        sum=0
        for i in args:
            sum+=i
            print(sum)
    add(1,2,3,4,5)
    add(1,2,3)    

    2.**kwargs 

      传入的是不定长的命名参数(命名参数存储的是字典,相对于无命名参数存储的是元祖)kwargs可以自定义其他名称

    def print_infoo(*args, **kwargs):
    
        print(args) #('alex', 18, 'male')
    
        print(kwargs) #(job='IT', hobby='bo')
    
    print_info('alex', 18, 'male', job='IT', hobby='bo' )

      以(*args, **kwargs)这种形式接收的参数就没有接收不到的参数了。

    3. *args **kwargs传入一个列表

    def func(*args):
        print(args)
        #调用函数打算传入一个列表或者字典,可以这样处理
    func(*[1,2,3])

    **kwargs处理就加**

    func(**{'name':'Alex', age='19'})

    4.不定长参数/默认参数/关键参数的位置

      *args放左边,**kwargs参数放在右边,如果有默认参数放左边,关键参数放最左边优先级最高。

      默认参数占位置就会对应个实参

    def func(name, sex='male', *args, **kwargs):
        print(args) 
        #(34,'female')
    print_info(1,2,34,'female')
  • 相关阅读:
    EF Core使用笔记(基于MySql数据库)
    开发环境---->服务器(数据库迁移Migration)
    正向代理和反向代理
    Linux基础命令
    Git + Docker + Jenkins自动化部署web到Linux(Centos)
    poj3320(尺取法)
    poj3061(尺取法)
    51nod 1092(lcs)回文字符串
    51nod1268(基础dfs)
    51nod-1459-迷宫游戏
  • 原文地址:https://www.cnblogs.com/sitongyan/p/10496304.html
Copyright © 2020-2023  润新知