zoukankan      html  css  js  c++  java
  • python中*args和**kwargs学习

    *args 和 **kwargs 经常看到,但是一脸懵逼 ,今天终于有收获了

    """
    python 函数的入参经常能看到这样一种情况 *args  或者是 **kwargs
           但是它们到底是啥意思呢?
           代码能说明一切
    """
    
    
    def hello(*args, **kwargs):
        print(args)  # ('小明', 25, '男', '中国银行')
        print(kwargs)  # {}
    
    
    hello('小明', 25, '', '中国银行')
    
    print('*' * 50)
    
    
    def hello(*args, **kwargs):
        print(args)  # ()
        print(kwargs)  # {'name': '小明', 'age': 25, 'gender': '男', 'company': '中国银行'}
    
    
    hello(name='小明', age=25, gender='', company='中国银行')
    
    print('*' * 50)
    
    
    def hello(name, *args, **kwargs):
        '''
         将第一个入参映射到name头上去了
        :param name:
        :param args:
        :param kwargs:
        :return:
        '''
        print(name)  # 小光
        print(args)  # (40, '男', '中国银行')
        print(kwargs)  # {}
    
    
    hello('小光', 40, '', '中国银行')
    
    
    
    print('*' * 50)
    
    
    def hello(name, *args, **kwargs):
        '''
         将第一个入参映射到name头上去了
        '''
        print(name)  # 小光
        print(args)  # (40, '男', '中国银行')
        print(kwargs)  # {}
    
    
    hello(name='小光', 40, '', '中国银行')  # 这样编译都不会通过
    
    
    print('*' * 50)
    
    
    def hello(name, *args, **kwargs):
        '''
         将第一个入参映射到name头上去了
        '''
        print(name)  # 小光
        print(args)  # ()
        print(kwargs)  # {'age': 40, 'gender': '男', 'company': '中国银行'}
    
    
    hello(name='小光', age = 40, gender= '', company = '中国银行')  # 要搞就只能这样搞

    至于 ,如何灵活的使用,还有待于工作中的摸索.....

  • 相关阅读:
    Jquery EasyUI tabs处理
    C# ToString格式控制符
    SQL删除重复数据,保留一条
    stm32f4xx 的IWDG使用的一般步骤
    stm32f4xx 的EXTI使用的一般步骤
    STM32F4xx---EXTI 外部中断
    数组和指针 到 存储类(1)
    uCosII 从 OSStart开始到思维定势··········
    《C和指针》一书介绍操作符优先级
    OSTimeTick()函数解析
  • 原文地址:https://www.cnblogs.com/z-qinfeng/p/12037676.html
Copyright © 2011-2022 走看看