二十 物件導向 property使用

2022-07-13 17:30:15 字數 1789 閱讀 7094

一.  property使用  乙個靜態屬性property本質就是實現了get,set,delete三種方法

class

foo:

@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的時候執行我啊

class

goods:

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 #

修改商品原價

print

(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...