Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python .items()不';我不能在我创建的班级工作_Python_Class_Dictionary - Fatal编程技术网

Python .items()不';我不能在我创建的班级工作

Python .items()不';我不能在我创建的班级工作,python,class,dictionary,Python,Class,Dictionary,我写了这个剧本: class MonDictionnaire: def __init__(self): self.dictionnaire = {} def __add__(self, objetàajouter): nouvelle_valeure = MonDictionnaire() nouvelle_valeure.dictionnaire = self.dictionnaire nouvelle_valeu

我写了这个剧本:

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'
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
水果=水果+豆类
文件“D:\Python\Dictionnaire.py”,第9行,添加__
nouvelle_valure.dictionnaire=dict(self.dictionnaire.items()+objetáajouter.items())
AttributeError:“MonditionNaire”对象没有属性“items”

我不明白为什么我创建的类是一个词汇表???!!!
非常感谢你帮助我

您已经定义了实例属性:

self.dictionnaire = {}
objetàajouter.dictionnaire.items()
而在
objetáajouter.items()
中,您试图获取实例本身的
items
方法,但该方法不存在

您需要显式指定属性:

self.dictionnaire = {}
objetàajouter.dictionnaire.items()

另外,您是否打算将
dict
子类化?

看起来您的问题在于这一行:

nouvelle_valeure.dictionnaire = dict(self.dictionnaire.items() + objetàajouter.items()
当您调用:
fruit=fruit+legume
时,您的类正在尝试调用
legume
上的
.items()
。我认为这一变化应该如您所期望的那样起作用:

nouvelle_valeure.dictionnaire = dict(self.dictionnaire.items() + objetàajouter.dictionnaire.items()

你从来没有定义过
items
方法,为什么你希望它存在?“我不明白为什么,因为我创建的类是一个词汇表”不,它不是。它既不继承dict,也不实现任何必要的映射方法,因此它根本不是字典。里面有一本字典。