案例。我想修改,並添加以下行爲,下面的代碼(這是一個上下文處理器):Python/Django OOP修改以下代碼以顯示get/set和構造函數
檢查,如果用戶通過認證檢查最後一次的餘額被更新(cookie的可能),如果它是在更新後最後5分鐘什麼都不做,否則照常取得新的平衡。
def get_balance(request):
if request.user.is_authenticated():
balance = Account.objects.get(user=request.user).balance
else:
balance = 0
return {'account_balance': balance}
但是:
我想瞭解多一點關於在Django/Python的 OOP可一些修改例子來實現我的目標,包括使用:
屬性:我來自Java,我想集合和得到,它對我來說更有意義。如果不存在,取得平衡,否則創建新的。
構造函數方法:在Python中,我認爲我必須將其更改爲類並使用init權限?
UPDATE:
要使用結構我第一次覺得我需要創建一個類,我假設這個使用在Django的上下文處理器做這樣的事情是確定的:
class BalanceProcessor(request):
_balance = Account.objects.get(user=request.user).balance
@property
def get_balance(self):
return return {'account_balance': _balance}
@setter???
請修復您的縮進。對Python代碼來說這不是一個可選的東西。 – jsbueno
@jsbueno鍵入問題,所以忘記了indention,修復:) – GrantU
我一直試圖正確回答你的問題,但你繼續編輯它;)順便說一句,「請求」變量旁邊的「平衡處理器」括號是你會是子類化......這不是一個爭論。 – JoeLinux