我有一个任务,我应该创建一个类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__
我将能够自己完成剩下的任务。
答案 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