zoukankan      html  css  js  c++  java
  • python可变参数总结

    简介:

    在Python中,星号除了用于乘法数值运算和幂运算外,还有一种特殊的用法"在变量前添加单个星号或两个星号",实现多参数的传入或变量的拆解

    1.参数传递

    可变参数是用在函数的参数传递上的
    单个星号代表这个位置接收任意多个非关键字参数并将其转化成元组
    而双星号代表这个位置接收任意多个关键字参数并将其转化成字典
    *args的功能:------接收N个位置参数,转换成元组tuple形式 **kwargs的功能------接收N个关键字参数,转换成字典dict形式
    1.1单个星号
    1 def test(a,*args):
    2     """a是一个普通传入的参数
    3     :args是一个非关键字星号参数
    4     """
    5     print('*args:{0}'.format(args))
    6 a=[1,2,3]
    7 test(4,*a)

    结果:

    1 *args:(1, 2, 3)
    View Code

    1.2双星号
    def test(a,**kwargs):
        """a是一个普通传入的参数
        :args是一个关键字星号参数
        """
        print('*kwargs:{0}'.format(kwargs))
    b={'name':'ganin','age':18}
    test(1,**b)

    运行结果

    *kwargs:{'name': 'ganin', 'age': 18}

    2.变量拆分
    2.1*的变量拆分

    def test(*args):
        """
        :args是一个非关键字星号参数
        """
        print(args[1])
    
    a=[1,2,3]
    #test(a)#IndexError: tuple index out of range报错,没有使用*的直接把所有的转为元组
    test(*a)#2能够将这个变量拆分成单个元素
    
    注意:*是无法拆分字典的
    b={'name':'ganin','age':18}
    test(*b)
    #age
    View Code
    2.2**的变量拆分

    def test(**kwargs):
        """
        :kwargs
        """
        print(kwargs)
    
    
    b={'name':'ganin','age':18}
    test(**b)
    #{'name': 'ganin', 'age': 18}
    每天进步一点,遇见更好的你!
  • 相关阅读:
    socket套接字 struct模块
    网络编程 OSI七层协议
    内置方法 eval | exec 元类 单例
    选课系统
    iOS清理缓存 2016-04-19
    iOS 蓝牙 技术
    iOS人脸识别
    iOS 指纹识别
    极光推送的初步配置及其使用
    iOS 加急审核
  • 原文地址:https://www.cnblogs.com/ganiner/p/10066765.html
Copyright © 2011-2022 走看看