為什么class內部的兩個方法都命名為score,然后本來自定義的屬性也有一個self.score,這樣看著挺亂啊
如果把@property下的方法命名為getscore,緊接著@后面自然就變成了@getscore.setter,然后再命名的方法為setscore,這樣在下面調用時就可以寫成,如:
Bob=Student('Bob',99)
Bob.setscore=66
print?(Bob.getscore)
這樣感覺看著更舒服,也是把方法通過裝飾器變為屬性了,否則都是score,score,很暈的感覺,這里是有什么特殊地方么,比如不讓通過函數名暴露啥的...求解
2020-03-16
應該這么說吧,兩個score的區別是:(1)調用的裝飾器名稱不同(2)參數不同。
第一個score是獲取屬性,調用的@property裝飾器,里面肯定有做些處理的。第二個是用于設置屬性的score函數,調用的getscore.setter裝飾器。其實裝飾器就是個方法而已啦
最主要是兩個函數的參數不同.
當然你也可以用getscore,setscore來命名啊,不過按照p.score這種的,看上去代碼更簡潔更容易讀懂吧