在创建类时修改类的实例

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

我有此代码:

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()?)>

我有此代码:类分数:def __init __(self,top,bottom):self.num =顶部self.den =底部self = self.to_lowest_form()def to_lowest_form(self)... ... >>

python-3.x oop init
1个回答
1
投票

[通过减少Fraction方法中的分子/分母时返回一个to_lowest_form的新实例,而不是返回减少的数字本身,使事情变得更加复杂。考虑将简化的数字保留为属性,after

在内部计算其简化形式。
© www.soinside.com 2019 - 2024. All rights reserved.