一. property使用 乙個靜態屬性property本質就是實現了get,set,delete三種方法
classfoo:
@property
defaaa(self):
print('
get的時候執行我啊')
@aaa.setter
defaaa(self,value):
print(value,"
*******************************************")
print('
set的時候執行我啊')
@aaa.deleter
defaaa(self):
print('
delete的時候執行我啊')
#只有在屬性aaa定義property後才能定義aaa.setter,aaa.deleter
f1=foo()
f1.aaa
f1.aaa='
aaa'
delf1.aaa##
get的時候執行我啊
#set的時候執行我啊
#delete的時候執行我啊
aaa=property(get_aaa,set_aaa,delete_aaa) #內建property三個引數與get,set,delete一一對應
class
foo:
defget_aaa(self):
print('
get的時候執行我啊')
defset_aaa(self,value):
print('
set的時候執行我啊')
defdelete_aaa(self):
print('
delete的時候執行我啊')
aaa=property(get_aaa,set_aaa,delete_aaa) #
內建property三個引數與get,set,delete一一對應
f1=foo()
f1.aaa
f1.aaa='
aaa'
delf1.aaa
#get的時候執行我啊
#set的時候執行我啊
#delete的時候執行我啊
classgoods:
def__init__
(self):
#原價self.original_price = 100
#折扣 self.discount = 0.8@property
defprice(self):
#實際** = 原價 * 折扣
new_price = self.original_price *self.discount
return
new_price
@price.setter
defprice(self, value):
self.original_price =value
@price.deleter
defprice(self):
delself.original_price
obj =goods()
obj.price
#獲取商品**
obj.price = 200 #
修改商品原價
(obj.price)
del obj.price #
刪除商品原價
案例一
學習筆記十 物件導向程式設計
1.一般可以使用派生型別物件對基類物件進行賦值和初始化。但編譯器不會自動將派生型別物件轉換為基類型別物件。對物件進行初始化和賦值和可以自動轉換引用和指標,之間的區別是微妙的,必須好好理解。但是我理解不了,敘述見primer中文版第四版488頁 2.派生類只能初始化直接基類。3.只含有類型別或內建型別...
C 程式設計(十) 物件導向設計
抽象是形成概念的必要手段,它是從許多事物中捨棄個別的 非本質的特徵,抽取共同及本質性的特徵的過程。抽象是面對物件方法中使用最為廣泛的原則。類是物件的抽象 資料成員是事物靜態特徵的抽象 成員函式是事物動態特徵的抽象。在軟體開發領域,早在物件導向方法出現之前就已經開始運用抽象的原則,主要是過程抽象和資料...
Python 物件導向程式設計 Property屬性
一種用起來像是使用的例項屬性一樣的特殊屬性,可以對應於某個方法 class foo deffunc self pass 定義property屬性 property defprop self pass foo foo 例項化物件 foo.func 呼叫例項方法 value foo.prop 呼叫pro...