Python运行代码报AttributeError:'str'无'unitPrice'属性
报错核心成因
- 异常本质:代码在第22行、第55行尝试读取
unitPrice属性时,当前操作的对象是字符串类型,不具备Item类定义的unitPrice属性。
结合库存管理业务的常见触发场景
- 字典遍历逻辑错误:如果Store类的库存采用字典结构存储,字典键值为商品名字符串、对应值为Item类实例,遍历库存时若直接遍历字典本身而非字典的values,获取到的全是字符串类型的商品名键,对这些键读取
unitPrice属性就会触发报错。这类逻辑通常分布在库存初始化校验、总库存价值统计、商品列表展示代码段,对应你代码第22行的问题来源。 - 方法入参类型错配:如果Store类的购买方法设计为接收Item类实例作为入参,实际调用时误传商品名字符串作为参数,方法内部尝试读取入参的
unitPrice属性计算结算金额时,就会因入参是字符串触发报错。这类逻辑通常分布在结算金额计算、库存扣减的代码段,对应你代码第55行的问题来源。
定位验证方式
在两处报错行的
unitPrice属性调用前,增加打印语句:print(目标对象的类型),运行后会输出<class 'str'>,可直接锁定类型不匹配的具体位置。
内容的提问来源于stack exchange,提问作者RedEye
相关产品推荐
相关产品推荐

