• 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 = '中国银行')  # 要搞就只能这样搞

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

  • 相关阅读:
    八大排序
    如何在VirtualBox虚拟机软件上安装Win7虚拟系统
    Android 的网络编程
    Android设计模式-观察者模式
    java开发之——[接口回调]
    MVC,MVP设计模式
    [Android四大组件之二]——Service
    [Android四大组件之一]——Activity
    Android中Context详解
    [ Android 五种数据存储方式之四 ] —— ContentProvider存储数据
  • 原文地址:https://www.cnblogs.com/z-qinfeng/p/12037676.html
Copyright © 2020-2023  润新知