正在处理代码卡塔,我得到了以下代码:
class Dictionary():
def __init__(self):
return {} # my code
def newentry(self, word, definition):
self[word] = definition # my code
return self # my code
我的测试是:
d = Dictionary()
d.newentry("Apple", "A fruit")
失败,并显示以下信息:
Traceback (most recent call last):
File "main.py", line 3, in <module>
d = Dictionary()
TypeError: __init__() should return None, not 'dict'
有人建议为什么Dictionary类应该返回None而不是dict
?
答案 0 :(得分:0)
一种可能的方法是拥有一个对象变量。正如评论中指出的那样,__init__
是初始化程序而不是构造函数
In [7]: class Dictionary():
...: def __init__(self):
...: self.d = {} # my code
...:
...: def newentry(self, word, definition):
...: self.d[word] = definition # my code
...: return self
...:
...:
In [8]: d = Dictionary()
...: d.newentry("Apple", "A fruit")
Out[8]: <__main__.Dictionary at 0x11f44b748>