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

Python中如何将多个变量打包为单个参数传入函数

实现方法

下面是几种Python中可实现该需求的方案,可根据实际场景选择:

方案1:使用dataclasses(推荐,Python 3.7+内置)

这是最规范的实现方案,支持类型标注、默认值、可变属性等,适合参数结构固定的场景:
首先定义参数数据类:

from dataclasses import dataclass

@dataclass
class FunctionParams:
    var1: int
    var2: float
    var3: str
    # 可继续添加其他参数,也支持设置默认值

调用函数前实例化参数对象,传入函数即可通过属性调用:

def my_function(parameters: FunctionParams):
    output = parameters.var1 + parameters.var2
    # 可通过.语法直接访问所有属性
    return output

# 调用示例
params = FunctionParams(var1=10, var2=2.5, var3="test")
print(my_function(params))

方案2:使用SimpleNamespace(灵活轻量)

如果不想提前定义类,可以用types模块下的SimpleNamespace,无需提前声明结构,支持动态设置属性:

from types import SimpleNamespace

def my_function(parameters):
    return parameters.var1 + parameters.var2 + parameters.var3

# 调用时直接打包参数即可
params = SimpleNamespace(var1=1, var2=2, var3=3, var4="额外参数")
print(my_function(params))

方案3:使用namedtuple(不可变参数场景)

如果参数不需要在运行时修改,可以用collections的namedtuple,生成的参数对象是不可变的,可避免误改参数值:

from collections import namedtuple

# 先定义参数结构
FunctionParams = namedtuple("FunctionParams", ["var1", "var2", "var3"])

def my_function(parameters):
    return parameters.var1 + parameters.var2 + parameters.var3

# 调用示例
params = FunctionParams(var1=1, var2=2, var3=3)
print(my_function(params))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 00:06:00