python中的*和**

参考博客:

Python 运算符 | 菜鸟教程 (runoob.com)

(42条消息) Python之可变参数,参数,**参数,以及传入参数,**参数解包,*args,kwargs的理解_叫我王员外就行的博客-CSDN博客_python 参数

作为算数运算符

运算符 描述 实例
* 10*2=20
** 10**2=100

作为可变参数

*args **kwargs
函数定义 *参数收集所有未匹配的位置参数组成一个tuple对象,局部变量args指向此tuple对象 **参数收集所有未匹配的关键字参数组成一个dict对象,局部变量kwargs指向此dict对象
函数调用 *参数解包tuple对象的每个元素,作为一个一个的位置参数传入到函数中 **参数解包dict对象的每个元素,作为一个一个的关键字参数传入到函数中
函数调用时可变参数部分未传入 局部变量args指向一个空元组,即() 局部变量kwargs指向一个字典,即{}
# *相关示例
def add_integer(a, b, *args):
    sum = a + b
    for index, item in enumerate(args):
        print("序号:", index, "值:", item)
        sum = sum + item
    print("和:", sum)
    print("args:", args)

add_integer(2, 3)
add_integer(2, 3, 4)
add_integer(2, 3, 4, 5, 6)

# 程序运行结果
和: 5
args: ()
序号: 0 值: 4
和: 9
args: (4,)
序号: 0 值: 4
序号: 1 值: 5
序号: 2 值: 6
和: 20
args: (4, 5, 6)
# **相关示例
def add_integer(a, b, **kwargs):
    sum = a + b
    c = kwargs.get("c", None)
    d = kwargs.get("d", None)
    e = kwargs.get("e", None)
    if c is not None:
        sum = sum + c
    if d is not None:
        sum = sum + d
    if e is not None:
        sum = sum + e
    print("和:", sum)
    print("kwargs:", kwargs)


add_integer(2, 3)
add_integer(2, 3, c=4)
add_integer(2, 3, c=4, d=5, e=6)
kwargs = {
    "c": 4,
    "d": 5,
    "e": 6
}
add_integer(2, 3, **kwargs)

# 程序运行结果
和: 5
kwargs: {}
和: 9
kwargs: {'c': 4}
和: 20
kwargs: {'c': 4, 'd': 5, 'e': 6}
和: 20
kwargs: {'c': 4, 'd': 5, 'e': 6}

内容如有错误,敬请指正!

你可能感兴趣的:(python,python)