python裡面的property屬性定義和方式

2021-09-19 10:54:11 字數 1671 閱讀 1193

裝飾器 即:在⽅法上應⽤裝飾器

類屬性 即:在類中定義值為property物件的類屬性

class goods:

@property

def price(self):

print("@property")

@price.setter

def price(self,value):

print("@price.setter")

@price.deleter

def price(self):

print("@price.deleter")

obj = goods()

obj.price#自動執行 @property 修飾的 price 方法並獲取方法

obj.price = 123#自動執行@price.setter 修飾的price方法 並將123賦值給引數

del obj.price#自動執行 @price.deleter 修飾的price方法

注意

經典類中的屬性只有⼀種訪問⽅式,其對應被 @property 修飾的⽅法

新式類中的屬性有三種訪問⽅式,並分別對應了三個被@property、@⽅

法名.setter、@⽅法名.deleter修飾的⽅法

當使⽤類屬性的⽅式建立property屬性時, 經典類 和 新式類 ⽆區別

class foo(object):

def get_bar(self):

print("getter...")

return "laowang"

def set_bar(self,value):

print("setter...")

return "set value" + value

def del_bar(self):

print("deleter...")

return "laowang"

bar = property(get_bar,set_bar,del_bar,"description...")

obj = foo()

obj.bar#自動呼叫第乙個引數中定義的方法:get\_bar

obj.bar = "alex"#自動跳用第二個引數中定義的方法:set_bar方法 並將"alex"當做引數傳入

desc = foo.bar.__doc__#自動獲取第四個引數中設定的值:descrepation

print(desc)

del obj.bar#自動呼叫第三個引數中定義的方法:del_bar方法

property⽅法中有個四個引數

第⼀個引數是⽅法名,調⽤ 物件.屬性 時⾃動觸發執⾏⽅法

第⼆個引數是⽅法名,調⽤ 物件.屬性 = *** 時⾃動觸發執⾏⽅法

第三個引數是⽅法名,調⽤ del 物件.屬性 時⾃動觸發執⾏⽅法

第四個引數是字串,調⽤ 物件.屬性.__doc__ ,此引數是該屬性的描述資訊

綜上所述:

定義property屬性共有兩種⽅式,分別是【裝飾器】和【類屬性】,⽽【裝飾器】⽅式針對經典類和新式類⼜有所不同。

通過使⽤property屬性,能夠簡化調⽤者在獲取資料的流程

Python裡面的字典

python 將這種資料型別叫做 dict 有的語言裡它的名稱是 hash 這兩種名字都會用到,不過這並不重要,重要的是它們和列表的區別。你看,針對列表你可以做這樣的事情 things a b c d print things 1 b things 1 z print things 1 z prin...

python裡面的數學

一.基本運算子 1.算數運算 2.比較運算 特殊情況 不等於 新版本不支援 不等號 3.賦值運算 4.邏輯運算 not 非 非真即假,非假即真.and 並且 左右兩端同時為真,結果才為真.or 或者 左右兩端有乙個為真,結果就是真.true 真 1 判斷的結果 false 假 0 判斷的結果 pri...

python裡面的工廠模式

工廠模式 工廠模式 是乙個在軟體開發中用來建立物件的設計模型。使用工廠模式的應用場景 當不知道使用者想要建立什麼樣的物件時可以使用?工廠模式。乙個手機工廠模式 class phone object defpicture self print 照相 def call self print 打 clas...