python之多值参数

mac2025-07-20  5

多值参数

定义支持多值参数的函数

有时可能需要 一个函数 能够处理的参数 个数 是不确定的,这个时候,就可以使用 多值参数

python 中有 两种 多值参数:

参数名前增加 一个 * 可以接收 元组参数名前增加 两个 * 可以接收 字典

一般在给多值参数命名时,习惯使用以下两个名字

*args —— 存放 元组 参数,前面有一个 ***kwargs —— 存放 字典 参数,前面有两个 *

args 是 arguments 的缩写,有变量的含义

kw 是 keyword 的缩写,kwargs 可以记忆 键值对参数

def demo(num, *args, **kwargs): print(num) print(args) print(kwargs) demo(1, 2, 3, 4, 5, name="小明", age=18, gender=True)

提示:多值参数 的应用会经常出现在网络上一些大牛开发的框架中,知道多值参数,有利于我们能够读懂大牛的代码

多值参数案例 —— 计算任意多个数字的和

需求

定义一个函数 sum_numbers,可以接收的 任意多个整数功能要求:将传递的 所有数字累加 并且返回累加结果 def sum_numbers(*args): num = 0 print(args) # 循环遍历 for n in args: num += n return num result = sum_numbers(1, 2, 3, 4, 5) print(result)
元组和字典的拆包
在调用带有多值参数的函数时,如果希望: 将一个 元组变量,直接传递给 args将一个 字典变量,直接传递给 kwargs 就可以使用 拆包,简化参数的传递,拆包 的方式是: 在 元组变量前,增加 一个 *在 字典变量前,增加 两个 * def demo(*args, **kwargs): print(args) print(kwargs) # 需要将一个元组变量/字典变量传递给函数对应的参数 gl_nums = (1, 2, 3) gl_xiaoming = {"name": "小明", "age": 18} # 会把 num_tuple 和 xiaoming 作为元组传递个 args # demo(gl_nums, gl_xiaoming) demo(*gl_nums, **gl_xiaoming)
最新回复(0)