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}
    每天进步一点,遇见更好的你!
  • 相关阅读:
    脚本 页面截取
    net Email 发送(借助第三方)
    查询表、存储过程、触发器的创建时间和最后修改时间(转)
    ActionScript简介
    mysql 1064 USING BTREE问题
    浅谈SQL SERVER函数count()
    程序员学习能力提升三要素
    构建杀手级应用的 JavaScript 框架、工具和技术
    javascript刷新页面方法大全
    html页<![if IE]>...<![endif]>使用解说
  • 原文地址:https://www.cnblogs.com/ganiner/p/10066765.html
Copyright © 2011-2022 走看看