Python报错求助:'Marathon'对象无'runnerList'属性
嘿,这问题一看就明白啦!你遇到的AttributeError完全是拼写不一致搞出来的小乌龙~
问题核心
报错里明确说'Marathon' object has no attribute 'runnerList',但你贴的类定义里写的是runnersList = []——注意看,一个是runnerList(少了个s),一个是runnersList(多了个s)!Python对变量名大小写、拼写是严格区分的,这就导致代码里访问的属性和类里定义的对不上,自然找不到啦。
两种修复方案
- 方案一:统一用类里的命名。把你代码中所有访问
self.runnerList的地方(比如registered方法里的代码)改成self.runnersList,和类定义保持一致。 - 方案二:统一用报错里的命名。如果本来就想叫
runnerList,那把类里的定义改成runnerList = [],确保所有地方的命名统一。
额外小建议
另外注意:你现在把runnersList定义成了类属性,这意味着所有Marathon实例会共享同一个列表。如果你的需求是每个马拉松赛事有自己独立的参赛者列表,建议在__init__方法里初始化实例属性:
class Marathon: def __init__(self): self.runnersList = [] # 每个实例拥有独立的列表
这样就能避免多个实例互相干扰的问题咯!
内容的提问来源于stack exchange,提问作者user23432432
相关产品推荐
相关产品推荐

