TypeError:__init __()应该返回None,而不是'dict'

时间:2020-07-28 12:19:11

标签: python

正在处理代码卡塔,我得到了以下代码:

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

1 个答案:

答案 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>
相关问题