📌  相关文章
📜  'fraction' 和 'fraction' 不支持的操作数类型 - Python (1)

📅  最后修改于: 2023-12-03 15:13:02.588000             🧑  作者: Mango

Python错误:'fraction' 和 'fraction' 不支持的操作数类型

当我们在Python中使用自定义的fraction类时,可能会遇到类似以下的错误:

TypeError: unsupported operand type(s) for +: 'fraction' and 'fraction'

这意味着我们尝试使用自定义的fraction类来执行不支持的操作,例如+-*/等。

这个问题通常会发生在我们没有为自定义的fraction类定义适当的魔法方法时。例如,如果我们想要使用+操作符将两个fraction对象相加,我们需要为我们的fraction类定义一个__add__()方法。

以下是一个示例自定义fraction类及其__add__()方法,以解决上面的错误:

class Fraction:

   def __init__(self, top, bottom):
       self.num = top
       self.den = bottom

   def __add__(self, other):
       new_num = self.num * other.den + other.num * self.den
       new_den = self.den * other.den
       return Fraction(new_num, new_den)

在这个例子中,我们为Fraction类定义了一个__add__()方法,它使用了分数加法的公式,然后返回一个新的分数Fraction对象。

现在,我们可以在Python中使用+操作符将两个Fraction对象相加,不会再遇到TypeError: unsupported operand type(s) for +: 'fraction' and 'fraction'错误。

希望这篇文章对你有帮助!