課程
/后端開發
/Python
/python進階
如何理解@property,能不能結合例子說明一下。
用裝飾器@property?把?get/set?方法“裝飾”成屬性調用?這句話怎么個理解,求大神們賜教。
2020-01-15
源自:python進階 6-7
正在回答
其實廖老師是用get和set舉了個例子,也就是說在沒有使用property裝飾器之前是需要用到get和set方法的,使用property后就可以不用在定義get和set的方法了
@property的作用是將被裝飾的函數可以被當做屬性一樣調用
用def是在類里邊定義類的方法,而用def__init__是在類里邊定義類的屬性。
用def定義的類方法用實例名.方法名(x)的形式調用,而用def__init定義的類屬性用實例名.屬性名=x調用。
如果我想用調用類屬性的形式調用類方法呢?那就加個@property就可以了。實際上@property就是把類方法變成了一個類屬性。
def?grade(self): ????????if?self.score>=80: ????????????return?'A' ????????if?self.score<60: ????????????return'C' ????????return?'B'
原理不知道,以下希望能幫到你
不加@property。那就是方法,用s.grade()調用,可得到正確返回值(CBA)
加@property。裝飾為屬性,用s.grade即可返回CBA
我也是剛學,我是這么理解的,@property這個裝飾器后,原來的get和set 就失效了,等于你重寫了get/set方法
舉報
學習函數式、模塊和面向對象編程,掌握Python高級程序設計
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2020-05-06
其實廖老師是用get和set舉了個例子,也就是說在沒有使用property裝飾器之前是需要用到get和set方法的,使用property后就可以不用在定義get和set的方法了
@property的作用是將被裝飾的函數可以被當做屬性一樣調用
2020-03-15
用def是在類里邊定義類的方法,而用def__init__是在類里邊定義類的屬性。
用def定義的類方法用實例名.方法名(x)的形式調用,而用def__init定義的類屬性用實例名.屬性名=x調用。
如果我想用調用類屬性的形式調用類方法呢?那就加個@property就可以了。實際上@property就是把類方法變成了一個類屬性。
2020-02-04
原理不知道,以下希望能幫到你
不加@property。那就是方法,用s.grade()調用,可得到正確返回值(CBA)
加@property。裝飾為屬性,用s.grade即可返回CBA
2020-01-31
我也是剛學,我是這么理解的,@property這個裝飾器后,原來的get和set 就失效了,等于你重寫了get/set方法