我写了这个剧本:
class MonDictionnaire:
def __init__(self):
self.dictionnaire = {}
def __add__(self, objetàajouter):
nouvelle_valeure = MonDictionnaire()
nouvelle_valeure.dictionnaire = self.dictionnaire
nouvelle_valeure.dictionnaire = dict(self.dictionnaire.items() + objetàajouter.items()
然后我想在这个类中有两个对象,如:
>>>>fruit = MonDictionnaire()
>>> fruit.dictionnaire["pommes"] = 13
>>> fruit.dictionnaire["poires"] = 12
>>> fruit.dictionnaire["pruneau"] = 11
>>> legume = MonDictionnaire()
>>> legume.dictionnaire["poireau"] = 10
>>> legume.dictionnaire["panet"] = 9
然后我只想添加我的两个对象:
>>> fruit = fruit + legume
但shell返回以下错误消息:
Traceback (most recent call last):
File "<pyshell#39>", line 1, in <module>
fruit = fruit + legume
File "D:\Python\Dictionnaire.py", line 9, in __add__
nouvelle_valeure.dictionnaire = dict(self.dictionnaire.items() + objetàajouter.items())
AttributeError: 'MonDictionnaire' object has no attribute 'items'
我不明白为什么因为我创建的课程是一个词典??? !!! 非常感谢你帮助我!!!
答案 0 :(得分:1)
看起来你的问题在于这一行:
nouvelle_valeure.dictionnaire = dict(self.dictionnaire.items() + objetàajouter.items()
当您致电:fruit = fruit + legume
时,您的班级正试图致电.items()
上的legume
。我认为这种改变应该如你所愿:
nouvelle_valeure.dictionnaire = dict(self.dictionnaire.items() + objetàajouter.dictionnaire.items()
答案 1 :(得分:0)
您已定义实例属性:
self.dictionnaire = {}
而在objetàajouter.items()
中,您尝试获取实例本身的items
方法,而该方法不存在。
您需要明确指定属性:
objetàajouter.dictionnaire.items()
另外,您是否打算继承dict
?