分数类python

时间:2017-10-08 18:44:53

标签: python class fractions magic-methods

我有一个任务,我应该创建一个类Fractions,所有的功能都是“魔术方法”。问题是我的教授从未教过我们神奇的方法。我用过

   __init__ 

但从未使用任何其他魔术方法。我有两天的时间对此进行编程,我需要一些关于构建此代码的指导。最接近我需要编程的内容我在这里找到:https://gist.github.com/mustaa/2350807 但我无法理解该代码中发生了什么

神奇的方法是:

    class Fraction: #I need it in a form like the one on github, but easier to understand
    __init__  #construct a rational number with a given numerator and denominator
    __add__   #add two fractions
    __sub__   #subtract to fractions
    __eq__    #check if 2 fractions are equal
    __ne__    #check if 2 are not equal
    __lt__    #check if one fraction is less than the other
    __le__    #check if <=
    __gt__    #check if one fraction is greater than the other
    __ge__    #check if >=
    __float__ #gets float representation of fraction called by float()
    __repr__  #gets a string representation of the Fraction instance, called by str()

获得骨架代码后:

    class Fraction, __add__, __eq__ 

我将能够自己完成剩下的任务。

1 个答案:

答案 0 :(得分:1)

以下是如何为无用的__add__类实现神奇的__eq__Integer方法。我会留给你让它适应你的Fraction课程。

class Integer:

    def __init__(self, value):
        self._value = value

    def __add__(self, other):
        return Integer(self._value + other._value)

    def __eq__(self, other):
        return self._value == other._value