如何在初始化类后自动创建实例变量?
例如,
class AmortizationSchedule:
__init__(self, principal, interest, num_periods):
self.principal = principal
self.interest = interest
self.num_periods = num_periods
现在如何创建另一个名为schedule
的属性,该属性在初始化类时自动创建?
答案 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)