TypeError:\uuuu init\uuuuu()应返回None,而不是'dict'

2024-06-28 20:06:19 发布

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

正在编写代码Kata,我有以下代码:

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


Tags: 代码selfnonedictionaryreturninitmydef
1条回答
网友
1楼 · 发布于 2024-06-28 20:06:19

一种可能的方法是使用对象变量。正如注释中指出的,__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>

相关问题 更多 >