建立property屬性的方法有兩種,分別是裝飾器方式 和 類屬性方式。
1、裝飾器方式如下:
class goods:def __init__(self):
self.original_price = 100
self.discount = 0.8
@property
def price(self): #此函式中只有self,不能有其他引數穿進
new_price = self.original_price * self.discount
return new_price
@price.setter
def price(self, value):
self.original_price = value
@price.deleter
def price(self):
del self.original_price
g = goods()
price = g.price
g.price = 60
del g.price
print(g.original_price)
2、 類屬性方式如下:
1class
goods():
2def
get_price(self):
3return 10045
defset_price(self, value):
6"""
必須兩個引數
"""7
return
value89
defdel_price(self):
10return
'no price'11
12 bar =property(get_price, set_price, del_price)
1314 obj =goods()
1516 obj.bar #
自動呼叫第乙個引數中定義的方法:get_price
17 obj.bar = 50 #
自動呼叫第二個引數中定義的方法:set_price方法,並將50當作引數傳入
18del obj.bar #
自動呼叫第三個引數中定義的方法:del_bar方法
此外,property還有 doc 屬性,此引數是該屬性的描述資訊,不過一般用不上,所以不介紹。
JS中Attribute和property的區別
在使用angular中的資料繫結時,發現對html屬性和dom屬性不是很清楚,順便屢屢清楚這二者的區別。attribute html屬性,書寫在標籤內的屬性,使用setattribute 和getattribute 進行設定和獲取。property dom屬性,html標籤對應的dom節點屬性,使用...
Python 今天抽空學習了 Property
1 property使方法像屬性一樣呼叫 property可以把乙個例項方法變成其同名屬性,以支援.號訪問,它亦可標記設定限制,加以規範 2 property成為屬性函式,可以對屬性賦值時做必要的檢查,比如在setter方法裡加過濾判斷條件。3 顯得相對簡潔一些,相比自定義的get和set方法,pr...
python中 python中的 與
這一部分首先要理解python記憶體機制,python中萬物皆物件。對於不可變物件,改變了原來的值,其別名 變數名 繫結到了新值上面,id肯定會改變 對於可變物件,操作改變了值,id肯定會變,而 是本地操作,其值原地修改 對於 號操作,可變物件和不可變物件呼叫的都是 add 操作 對於 號操作,可變...