5
在python代碼中,我經常看到使用@property。如果沒有定義setter或deleter,爲什麼有人會使用@property?
如果我理解正確,用property function可以定義一個getter setter和deleter。
如果setter和deleter未定義(@ x.setter,@ x.deleter),爲什麼要使用@property?這與不使用@property完全相同嗎?
在python代碼中,我經常看到使用@property。如果沒有定義setter或deleter,爲什麼有人會使用@property?
如果我理解正確,用property function可以定義一個getter setter和deleter。
如果setter和deleter未定義(@ x.setter,@ x.deleter),爲什麼要使用@property?這與不使用@property完全相同嗎?
它創建一個不允許設置值的API。這在其他語言中與常量類似。
常數? getter是一個函數,每次調用時都可以給出不同的結果。或者屬性函數只會在對象的生命週期中評估一次,這是沒有意義的。不過,我現在明白優點是什麼,但我不認爲它與常數相似。 – 2011-06-08 06:57:47
有絕對的差異,但也有一些重疊,我在這裏使用* *類似的字面意思。 – 2011-06-08 06:59:36
我認爲這是隻有當你用雙下劃線加變量前綴時,否則你仍然可以用或不用'@ property'來設置它。我也在這裏,因爲我想知道是否有任何意見在非常量的東西上使用'@ property',而不應該有setter。 – Zitrax 2013-07-18 09:45:43