类实例属性似乎不会初始化

2024-03-28 11:47:50 发布

您现在位置:Python中文网/ 问答频道 /正文

这似乎是一个简单的问题,但似乎没有任何答案可以解决我的特定问题,这就是为什么init方法从未真正启动类实例变量“listlist”。在

class PointsList():
    def _init_(self):        
        self.listlist = [None]
    def addtolist(self,item):
        self.listlist.append(item)              
    def getlist(self):
        return self.listlist


a = PointsList()
a.addtolist('Scarlet')
print a.getlist()

运行上述代码可以得到: AttributeError:PointsList实例没有属性“listlist”

当'addtolist'方法尝试向显然不存在的'listlist'实例变量添加一个项时,错误被跟踪到第5行。在

我已经检查了很多次压痕,但似乎是完好的。我的Python安装有什么问题吗?我使用的是pythonv2.7.5(还没有到2.7.6版本)和spyderidev2.2.0


Tags: 实例方法答案selfnonereturninitdef
1条回答
网友
1楼 · 发布于 2024-03-28 11:47:50

Python特殊方法在开始和结束处使用2下划线;您需要命名初始值设定项^{{cd1>},而不是^{cd2>}:

class PointsList():
    def __init__(self):        
        self.listlist = [None]

下划线字符通常显示为连接形成一条较长的行,但在^{{cd3>}之前有两个下划线,后面有两个下划线。

相关问题 更多 >