【发布时间】:2020-06-20 21:28:24
【问题描述】:
我有这个代码:
class Fraction:
def __init__(self, top, bottom):
self.num = top
self.den = bottom
self = self.to_lowest_form()
def to_lowest_form(self):
from math import gcd
d = 0
while d != 1:
d = gcd(self.num, self.den)
self.num //= d
self.den //= d
return Fraction(self.num, self.den)
def __add__(self, other):
pass
如上代码所示,我需要得到一个 fraction,然后在初始化后将其置于最低形式。 (我得到一个 RecursionError 并且我知道为什么)。
所以我的问题是如何将新创建的 fraction 转换为最低项(以避免在每种方法中调用 instance.lowest_form())?
【问题讨论】:
-
永远不要分配给
self。那是实际的实例对象。
标签: python-3.x oop init