我自己创建的类中的 '.items()没有作用'

2024-06-28 06:34:12 发布

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

我写了这个剧本:

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'

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


Tags: 对象selfadddefitemsdictfilefruit
2条回答

看来你的问题出在这一行:

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()

已定义实例属性:

self.dictionnaire = {}

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

您需要显式指定属性:

objetàajouter.dictionnaire.items()

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

相关问题 更多 >