從評論繼的問題,有一些重新計算這樣的最簡單的方法是定義執行計算的功能。
E.g.
def calculate_final_loan_principal(initial, rate, years):
return initial*rate**years
然後,它可以被稱爲是這樣的:
>>> calculate_final_loan_principal(initial=100, rate=1.1, years=5)
161.05100000000004
>>> calculate_final_loan_principal(initial=100, rate=1.05, years=5)
127.62815625000003
參數名字被列入那裏的清晰度,而是調用函數時,實際上並不需要:
>>> calculate_final_loan_principal(100, 1.05, 5)
127.62815625000003
或者,如果你定義了一個類,那麼你可以使用屬性。我會考慮這種矯枉過正的問題,但是OP特意問到了這一點。
class CompoundInterestLoan:
def __init__(self, initial, rate, years):
self.initial = initial
self.rate = rate
self.years = years
@property
def final(self):
return self.initial*self.rate**self.years
然後,您需要才能使用它來創建類的實例:
>>> loan = CompoundInterestLoan(initial=100, rate=1.1, years=5)
>>> loan.final
161.05100000000004
>>> loan.rate = 1.05
>>> loan.final
127.62815625000003
的'basic'標籤名爲BASIC語言,而不是那些簡單的問題。 –
...如果你想自動重新計算(反應式編程,&c),Python的工作是錯誤的語言。設定'final =(initial * rate ** years)'給'final'賦值*,它不建立*關係*。 –
'final'是用你的第一個數字定義的,如果你再次輸入'final =(initial * rate ** years)'這行,這應該起作用 – PRMoureu