Python已看pythonPython

Python fun(*args,**kwargs)中的*arg

2021-11-22  本文已影响0人  Gakki0725
作者:Gakki

01. Python 函数中的两种参数

注:位置参数只能由参数位置决定。这也就决定了位置参数一定要在前面,否则关键词参数数量的变化都会使得位置无法判断。

02. 理解 * 的作用

def func(a, b, c):
    print(a, b, c)
# test_list 的长度必须和函数中参数的个数相同,否则会报错
test_list = [1, 2, 3]
func(*test_list)

输出结果:
1 2 3

03. 理解 ** 的作用

def func(a, b, c):
    print(a, b, c)
test_dic = {"c": 1, "b": 2}
func(33, **test_dic)
func(33, 22, 11)

输出结果:
33 2 1
33 22 11

04. 理解函数中的 *args 和 **kwargs

def func(a, b, *args, **kwargs):
    """
    参数 a,b 表示常规参数列表
    args 接收元组作为位置参数,而非是常见的参数列表
    """
    print(a, b)
    print(args)
    print(kwargs)
func(33, 22, 11, 100, key1=1, key2=2)

输出结果:
33 22
(11, 100)
{'key1': 1, 'key2': 2}

*args 实现 sum

def func_sum(*args):
    total = 0
    for value in args:
        total += value
    return total
list1 = [1, 2, 3]
print(func_sum(*list1))

输出结果:
6
上一篇下一篇

猜你喜欢

热点阅读