如何正确处理类的不断变化的属性?

时间:2019-01-09 15:34:42

标签: python class

我在下面的类中有一种方法可以更改其属性。但是,我需要原始的未更改的属性。惯用的方法是什么?

该类描述借款人。借款人拥有称为PMT的财产。这是借款人的摊销价值。从当前值计算得出。但是,借款人有一种施加利息的方法。这将更改当前值,从而更改PMT。申请利息后,我需要原始PMT。解决它的最好方法是什么。 这是代码示例

import numpy as np

class Borrower:
    def __init__(self, present_value, term, rate):
        self.present_value = present_value
        self.term = term
        self.rate = rate

    def pmt(self):
        return -np.pmt(self.rate/12, self.term, self.present_value)

    def apply_interest(self):
        self.present_value *= 1 + self.rate

出现问题:

b = Borrower(1000, 12, 0.1)
b.pmt()  # 87.91
b.apply_interest()
b.pmt()  # 96.70  I need 87.91 here!

我应该用这样的初始pmt创建借款人吗?

class Borrower:
    def __init__(self, present_value, term, rate):
        self.present_value = present_value
        self.term = term
        self.rate = rate
        self.init_pmt = self.pmt()

0 个答案:

没有答案