You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何向含*args的函数传递列表/元组形式的可变参数?

给*args函数传递列表/元组参数的最优方法

别用eval()这种绕弯子的办法了,Python原生就有完美的解决方案——序列解包,直接在列表或元组前面加个*就行,完全不用修改原函数。

具体用法

先看你的原函数:

def product(*args):
    res = 1
    for x in args:
        res *= x
    return res

假设你有一个列表或者元组:

my_list = [2, 5, 3]
my_tuple = (4, 2, 1)

调用的时候直接这么写:

# 传递列表
print(product(*my_list))  # 输出30
# 传递元组
print(product(*my_tuple))  # 输出8

为什么这方法更优

  • 比eval()安全得多,完全不存在代码注入风险
  • 写法简洁直观,属于Python的惯用语法,其他开发者一眼就能看懂
  • 性能远高于动态生成代码的方式,不需要额外的代码解析步骤

额外补充:字典传参场景

如果你的函数还支持**kwargs接收关键字参数,那可以用**来解包字典:

def user_info(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")

user_dict = {"name": "Bob", "city": "Beijing"}
user_info(**user_dict)
# 输出:
# name: Bob
# city: Beijing

内容的提问来源于stack exchange,提问作者Jake

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 08:01:00