【问题标题】:Reason for "object has no attribute" in this code?此代码中“对象没有属性”的原因是什么?
【发布时间】:2018-09-10 12:41:57
【问题描述】:

我正在尝试为 Sum 和 product 等操作下的任意模类编写类函数。

我为形状的复数和面积写了类似的。

但是,在这里我很困惑,因为我不确定是否应该在每个“方法”之后返回剩余类以及最后是否需要一个 repr 函数?

这是代码:

class ModuloZ(object):
    def __init__(self,modulo,number):

        self.modulo = modulo
        self.number = number

    def __add__(self,b):
        Sum = self.number + b.number
        return self.Sum % self.modulo

    def __sub__ (self,b):
        Remainder = self.number - b.number
        return self.Remainder % self.modulo

    def __mul__(self,b):
        Product = self.number * b.number
        return self.Product % self.modulo

我总是得到例如当我尝试打印以下内容时,ModuloZ 对象没有属性 Product

a = ModuloZ(7, 9)
b = ModuloZ(7, 12)
print a *b

预计会得到: 3

所以,我的主要问题是,为什么我在明确定义产品操作时会得到这个,或者这不适用于这种类型的输入。

如果错误非常小或很基本,我深表歉意,但我会很感激任何提示。

【问题讨论】:

  • 你为什么在那里使用self?正如错误所说,您还没有定义任何名为self.Product 的东西,只是Product

标签: python python-2.7 class methods


【解决方案1】:

在您的__mul__ 方法中,您为Product 分配了一个值,但您没有为self.Product 分配任何值,您尝试在下一行中使用它。

对于您的其他方法也是如此。

【讨论】:

  • 非常感谢!你不知道我在这件事上浪费了多少时间。
猜你喜欢
  • 1970-01-01
  • 2019-08-05
  • 2022-01-04
  • 2021-12-08
  • 2021-04-07
  • 2022-11-18
  • 1970-01-01
  • 2020-03-22
  • 2019-12-01
相关资源
最近更新 更多