从其他实例变量自动创建类实例变量?

时间:2018-06-28 21:01:46

标签: python

如何在初始化类后自动创建实例变量?

例如,

class AmortizationSchedule:
    __init__(self, principal, interest, num_periods):
        self.principal = principal
        self.interest = interest
        self.num_periods = num_periods

现在如何创建另一个名为schedule的属性,该属性在初始化类时自动创建?

1 个答案:

答案 0 :(得分:3)

这是@property的完美用法。

您需要一个只读属性,该属性根据其他值进行计算。属性之所以出色,是因为它们的外观,感觉和行为与属性相似,但是它们的返回值是在访问它们时计算的。

class AmortizationSchedule:
    def __init__(self, principal, interest, num_periods):
        self.principal = principal
        self.interest = interest
        self.num_periods = num_periods

    @property
    def schedule(self):
        return self.principal / self.num_periods # put the calculation here

要访问它,只需将其视为另一个属性即可:

foo = AmortizationSchedule(10000, 10, 50)
print(foo.schedule)