def _get_severity_coefficient(self, severity_type_key: str, level_name: str) -> float: """ 从配置中获取严重程度对应的系数 :param severity_type_key: 对应 severity_level 下的键,如 "wear", "stain" :param level_name: 具体的等级名,如 "一般", "严重" :return: 系数 value """ severity_config = self.config.get("severity_level", {}) rules = severity_config.get(severity_type_key, []) # 默认系数为 1.0 (如果找不到配置) default_val = 1.0 # 寻找匹配的 name for rule in rules: if rule.get("name") == level_name: return float(rule.get("value", 1.0)) # 如果传入了"一般"但配置里没"一般",则返回 1.0 return default_val