@property,指示getter方法
@name.setter,知識setter方法
class duck():
def __init__(self,input_name):
self.hidden_name = input_name
def get_name(self):
print('inside getter')
return self.hidden_name
def set_name(self,input_name):
print('inside setter')
self.hidden_name = input_name
可以使用get_name或者set_name來顯示的獲取設定hidden_name,這樣顯示的呼叫get,set方法顯然不利於隱藏內部資訊
**修改如下:
class duck():
def __init__(self,input_name):
self.hidden_name = input_name
@property
def name(self):
print('inside getter')
return self.hidden_name
@name.setter
def name(self,input_name):
print('inside setter')
print input_name
self.hidden_name = input_name
呼叫方法:
fowl = duck('alpha')
fowl.name="donald"
實際上,由於python中的所有的特性都是公開的,所以有人知道內部的變數名是hiden_name,仍然可以使用fowl.hidden_name來訪問,這個可以用python中特有的命名方式來解決。
但是@property,@name.setter還是從一定程度上隱藏了內部的細節
python 修飾符 python 修飾符
修飾符基礎 閉包 什麼是閉包呢?標準的概念大家可以看wikipedia上的解釋 舉個例子 def do add base def add increase return base increase return add do add函式裡巢狀了乙個內層函式add,這個內層函式就是乙個閉包,其實可以也...
python 修飾符 python訪問修飾符
許可權訪問 偽許可權,只是壓縮時按規則換了變數名,python 的哲學是假定使用者都會使用 xx 以單下劃線開頭的表示的是protected型別的變數。即保護型別只能允許其本身與子類進行訪問。若內部變數標示,如 當使用 from m import 時,不會將以乙個下劃線開頭的物件引入 成俗約定,不做...
python修飾符用法 python修飾符
乾貨大禮包!21天帶你輕鬆學python 文末領取更多福利 本課程來自於千鋒教育在阿里雲開發者社群學習中心上線課程 python入門2020最新大課 主講人姜偉。21天帶你輕鬆學python python 是乙個高層次的結合了解釋性 編譯性 互動性和物件導向的指令碼語言。大資料 人工智慧時代首選程式...