如何将整数加到分数上

问题描述 投票:0回答:1

我自己想写一个类Fraction。我现在写了一些东西,给我输出这样的表达式。Fraction(1,2) + Fraction(2,1). 但我如何定义加法,使我可以将一个整数加到一个分数上,例如:1 + Fraction(2,1)。这是我对加法的定义。

def __add__(self, argument_twee):
        return breuk(self.teller*argument_twee.noemer + self.noemer*argument_twee.teller, self.noemer*argument_twee.noemer) 
python add fractions
1个回答
0
投票

我会做另一个将整数转换为分数的函数,如果你需要帮助写代码,我可以帮助你。


0
投票

检查类型 argument_twee 先,或者说,看看能不能把它当作一个 Fraction.

def __add__(self, argument_twee):
    try:
        n = argument_twee.noemer
        d = argument_twee.teller
    except AttributeError:
        n = argument_twee
        d = 1

    return breuk(self.teller*n + self.noemer*d, self.noemer*n)

(可以添加额外的测试来捕获非数字参数。)

这将处理 Fraction(1,2) + 1. 要处理 1 + Fraction(1,2),你需要实现 __radd__,这(因为所需的加法是换算式的)就像

__radd__ = __add__

0
投票

你需要用 isinstance 检查其是否是一个int或任何东西。

class A:
  def __add__(self,a):
    if isinstance(a,int):
      print(a)
    else:
      print("not Int")
v = A()
v + 1
v + A()

OUTPUT

1
not Int
© www.soinside.com 2019 - 2024. All rights reserved.