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

Python从字典中获取类实例化时出现AttributeError如何解决?

报错原因

你遇到的报错和从字典获取类实例化的逻辑无关,问题出在类内部的属性命名不匹配:
在calibrate.py的FullDirichletCalibrator类__init__方法中,你接收的入参名称为reg_lambda_list,但赋值给实例属性时,使用的名称是self.reg_lambda,因此实例化后的对象仅存在reg_lambda属性,不存在reg_lambda_list属性,访问不存在的属性就会抛出该错误。

解决方案

有两种修复方式,二选一即可:

  • 方式一:统一类内部的属性命名和入参一致
    修改calibrate.py的代码:
class FullDirichletCalibrator(BaseEstimator, RegressorMixin):
    def __init__(self, reg_lambda_list=0.0):
        # 保持属性名和入参名称相同
        self.reg_lambda_list = reg_lambda_list
  • 方式二:后续访问属性时使用实际存在的属性名
    如果你是刻意将实例属性命名为reg_lambda,只要把所有访问reg_lambda_list属性的代码,改为访问reg_lambda即可。
补充说明

你现有代码中「将类存入字典、取出后传参实例化」的逻辑本身是正确的,无需修改,只要确保实例化时传入的reg_list变量已经提前定义即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 10:45:05