python可变参数总结

时间:2019-06-17
本文章向大家介绍python可变参数总结,主要包括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}

原文地址:https://www.cnblogs.com/ganiner/p/10066765.html