函数-参数(可变参数&关键字参数)

一个*,会把输入参数打包成一个tuple

两个*,会把输入参数打包成一个字典

 1 """
 2 可变参数
 3 """
 4 
 5 
 6 def add(*args):
 7     print(args)
 8 
 9 
10 add()  # 空元组
11 add(1)  # (1,)
12 add(1, 2, 3)  # (1, 2, 3)

 可变参数求和(开发过程中,如果参数个数不确定的情况下)

调用函数,就是找到def定义的那块内存,想办法往里面传值。

系统只要看到*args,系统底层就提前把容器(元组)准备好,如果里面有元素,就将元素装进容器中

 1 """
 2 可变参数求和
 3 调用函数,就是找到def定义的那块内存,想办法往里面传值
 4 系统只要看到*args,系统底层就提前把容器(元组)准备好
 5 如果里面有元素,就将元素装进容器中
 6 """
 7 
 8 def add(*args):
 9     sum = 0
10     if len(args) > 0:
11         for i in args:
12             sum += i
13         print("累加和是,sum:", sum)
14     else:
15         print("没有元素可计算,sum:", sum)
16 
17 
18 add()
19 add(1,)
20 add(1, 2, 3)

 当可变参数搭配固定参数时

 1 """
 2 可变参数搭配不可变参数时,可变参数一定要放在固定参数后面
 3 """
 4 
 5 
 6 def add(name, *args):  # name, *args = "小王", 1, 3, 4
 7     sum = 0
 8     if len(args) > 0:
 9         for i in args:
10             sum += i
11         print("%s累加和是:sum:%s" % (name, sum))
12     else:
13         print("没有元素可计算:sum:", sum)
14 
15 
16 add("小王", 1, 3, 4)

 可变参数+关键字参数

 1 """
 2 关键字参数:key=value
 3 默认情况下,按顺序依次赋值
 4 """
 5 
 6 
 7 def add(a, b=10):   # 关键字参数,此时的b就是默认值
 8     result = a + b
 9     print(result)
10 
11 
12 add(5)
13 add(3, 7)
14 add(3, b=7)   # 此时7就会覆盖b原来的默认值
15 
16 print("=========================================")
17 
18 def add1(a, b=10, c=4):
19     print(a, b, c)
20     result = a + b + c
21     print(result)
22 
23 
24 add1(1)
25 add1(1, 3)  # 给b赋值3,默认3是赋值给b的
26 add1(1, c=6)  # 如想要将6赋值给c,则需要结合关键字的key使用

 **kwargs

1 """
2 只要看到**,系统就自动准备一个字典
3 """
4 def func(**kwargs):
5     print(kwargs)  # 默认转成字典保存
6 
7 
8 func(a=1, b=2, c=3)  # 关键字参数

 

原文地址:https://www.cnblogs.com/GumpYan/p/12293999.html