函数参数可变个数?就像点外卖能加辣、加蛋、加香菜

你有没有点过外卖,下单时发现:主食选一份,小菜可以选一两样,饮料可有可无,还能额外备注‘多放葱’‘不要香菜’‘微辣’——这一堆可选、可多可少的项目,其实和编程里‘函数参数可变个数’是一个道理。

函数不是只能吃定份盒饭

平时写函数,常这样写:

def say_hello(name):
print("你好," + name)

这就像一份标准盒饭:固定一人份,只收一个名字。但现实里,聚会打招呼可不只喊一个人——“你好,小王!你好,小李!你好,张老师!”这时候,硬要一个个传参就太累人了。

Python 用 *args 和 **kwargs 解放双手

Python 里,*args 接收任意多个位置参数(变成元组),**kwargs 接收任意多个关键字参数(变成字典)。比如:

def order_food(main, *sides, **extras):
print("主食:" + main)
if sides:
print("配菜:" + "、".join(sides))
if extras:
print("加料:" + ",".join([f"{k}={v}" for k, v in extras.items()]))

调用它就像点单一样随意:

order_food("米饭", "青菜", "红烧肉", sauce="卤汁", chili="微辣")

输出就是:
主食:米饭
配菜:青菜、红烧肉
加料:sauce=卤汁,chili=微辣

生活中哪天不用它?

快递填地址时,“收货人”是必填,“电话”“详细楼号”“门牌号”“是否代收”……这些全看情况;微信发红包,金额固定,但祝福语可以空着、可以写一句、也可以贴三张表情包——背后逻辑,都是‘参数个数不卡死’。函数也一样,灵活才好用。

别被术语吓住:可变参数,就是给函数留了‘加菜窗口’和‘备注栏’。