【问题标题】:Handle a object like dictionary处理像字典一样的对象
【发布时间】:2019-10-21 16:42:59
【问题描述】:

大家好,我对这段代码有一些问题。我想像字典一样处理类对象 diz 并使用 add 方法实现该类。在我的代码中,python 在第 17 行运行语法错误。有人可以帮助我吗?我的最终目标是使用 add 方法添加和删除任意数量的水果。抱歉,如果我发错了问题,但这是我第一次在这里发帖

class FruitBasket:
    def __init__(self,diz):
        self.diz = diz
    def __repr__(self):
        return '{}'.format(self.diz)
    def __add__(self,frutto):
        self.frutto = frutto
        return self.diz[self.frutto] += 1

diz = {"banana" : 3 , "apple" : 5,"mango" : 1, "orange" : 2}

diz = FruitBasket(diz)

print(diz)

【问题讨论】:

    标签: python class dictionary


    【解决方案1】:

    您不能在同一行中同时使用 +=return

    return self.diz[self.frutto] += 1
    

    你可以这样做

    self.diz[self.frutto] += 1
    return self.diz[self.frutto]
    

    【讨论】:

      【解决方案2】:

      如果你想拥有一个完整的类字典行为(包括索引等),你可以从 python dict 继承:

      class FruitBasket(dict):
          pass
      
      
      diz=FruitBasket()
      diz = {"banana" : 3 , "apple" : 5,"mango" : 1, "orange" : 2}
      
      diz = FruitBasket(diz)
      
      print(diz)
      # {'apple': 5, 'orange': 2, 'banana': 3, 'mango': 1}
      
      print(diz['apple'])
      # 5
      

      这样它实际上是一本字典,但您可以使用自己的功能对其进行扩展。

      【讨论】:

        猜你喜欢
        • 2021-12-14
        • 2014-11-10
        • 1970-01-01
        • 1970-01-01
        • 2021-10-21
        • 1970-01-01
        • 1970-01-01
        • 2018-01-13
        • 1970-01-01
        相关资源
        最近更新 更多