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

如何创建仅接收字典内参数的多参数Python函数?

问题分析与解决

你的代码存在两个核心问题:

  1. *Liquid会将传入的所有参数打包成一个元组,你直接判断整个元组是否在字典的键中,显然不符合预期(字典的键是单个字符串),因此会进入else分支。
  2. 字典的键值对逻辑颠倒,如果你要验证传入的参数是允许的容量值,应该把允许的值作为判断依据,而非用容量值映射名称。

正确实现(按你的需求:传入指定容量值,输出对应容量)

Milk = "1L"
Water = "10L"
Juice = "500ml"

# 定义允许的参数集合,快速验证合法性
ALLOWED_LIQUIDS = {Milk, Water, Juice}

def Quantity(*liquids):
    for liquid in liquids:
        # 逐个检查每个参数是否合法
        if liquid not in ALLOWED_LIQUIDS:
            print("An Error Occured")
            return  # 存在非法参数时直接终止函数
        print(liquid)

Quantity(Water, Milk)

输出结果:

10L
1L

扩展实现(如果需求是传入液体名称,输出对应容量)

如果你的实际需求是传入液体名称(如"Milk")并输出容量,可以调整为以下结构:

# 用字典存储名称与容量的映射
liquid_capacities = {
    "Milk": "1L",
    "Water": "10L",
    "Juice": "500ml"
}

def Quantity(*liquid_names):
    for name in liquid_names:
        if name not in liquid_capacities:
            print("An Error Occured")
            return
        print(liquid_capacities[name])

Quantity("Water", "Milk")

输出结果:

10L
1L

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 11:12:49