什麼是描述符?
描述符是一種具有「**行為」的物件屬性。
訪問(獲取、設定和刪除)它的屬性時,實際是呼叫特殊的方法(get(),set(),delete())。
也就是說,如果乙個物件定義了這三種方法的任何一種,它就是乙個描述符。
描述符類的三種定義方式:
1.運用魔法方法,定義描述符類。
#self 描述符物件。instance被管理成員的類的物件。
#owner被管理成員的類。value 要設定的值。
class
studentmanage()
: __score =
none
def__get__
(self, instance, owner)
:return self.__score
def__set__
(self, instance, value)
: self.__score = value
def__delete__
(self, instance)
:del self.__score
class
student()
: score = scoremanage(
)
2.使用 property() 函式實現。
class
student()
: __score =
none
# 在需要被管理的類中 直接定義類似下面三個方法
defgetscore
(self)
:return self.__score
defsetscore
(self,value)
: self.__score = value
defdelscore
(self)
:del self.__score
score =
property
(getscore,setscore,delscore)
3.使用 @property 裝飾器語法實現。
class
student()
: __score =
none
@property
defscore
(self)
:#get
return self.__score
@score.setter
defscore
(self,value)
:#set
self.__score = value
@score.deleter
defscore
(self)
:#delete
del self.__score
呼叫方式
sd=student(
)sd.score=
100#賦值
print
(sd.score)
#獲取del sd.score #刪除
陣列定義的三種方式
陣列定義的三種方式 第一種 int a new int 5 a 0 10 第二種 int c new int 第三種 inti 錯誤的寫法 int i1 1,2,3,4 system.out.println arrays.tostring c 總之 具體的元素不能被 包裹。包裹的應該是陣列的數量。常...
陣列的三種定義方式
格式 陣列儲存的資料型別 陣列名字 new 陣列儲存的資料型別 長度 陣列定義格式詳解 和水杯道理相同,買了乙個 2公升的水杯,總容量就是 2公升,不能多也不能少。舉例 定義可以儲存 3個整數的陣列容器,如下 int arr new int 3 3.陣列的定義方式二 格式 陣列儲存的資料型別 陣列名...
定義函式的三種方式
定義函式時引數是函式體接收外部傳值的一種媒介,其實就是乙個變數名 在函式階段括號內沒有引數,稱為無參函式。需要注意的是 定義時無參,意味著呼叫時也無需傳入引數。如果函式體 邏輯不需要依賴外部傳入的值,必須得定義成無參函式。def func print hello nick func hello ni...