Re: [問題] Django 的 @property

作者: Hsins (翔)   2020-02-03 02:59:50
這件事情要從物件導向先開始說起。
在物件導向程式設計(Object-Oriented Programming)的理念下,我們將原本在
程序式程式設計(Procedural Programming) 中的變數和函數對應到物件的屬性
與方法,宣告類別作為實例物件的基礎,以此達到封裝(Encapsulation)、繼承
(Inhertitance)和多型(polymorphism)這三大物件導向的特性。 這裡暫且不
提其他內容,先聊聊封裝這件事:
作者: Philethan (PE)   2020-02-03 09:59:00
@[email protected] 未看先推!!這讓我想起,我好像有在 python docs(?) 看到其實"取值"(點操作)並不是直接取,而是會先檢查有沒有定義__get__ 與 __set__,有的話那就用(就是property),沒有的話就直接取,找它的 class member所以,若在 def is_overdue(self) 前加上 @property那麼就可以更 pythonic,把 is_overdue() 函數看成一種變數,應該是這意思囉?感謝大大教學~~雖然總覺得這種"把函數看成變數"的背後機制,似乎跟剛才提的"先檢查有沒有定義__get__與__set__"不太一樣哦哦我在 python docs 看到了!The @property decorator turns the .... method intoa "getter" for a read-only attribute with the samename. https://i.imgur.com/qmFqRvQ.pnghttps://reurl.cc/drNxOz
作者: cuteSquirrel (松鼠)   2020-02-03 21:46:00
push
作者: Ryspon (Ry)   2020-02-06 02:16:00
推個
作者: AugustusHsu   2020-02-21 18:02:00
推個~

Links booklink

Contact Us: admin [ a t ] ucptt.com