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