python中 property裝飾器的用法

2021-08-15 16:57:52 字數 1561 閱讀 5737

1.@property是什麼? 

@property是python內建的乙個裝飾器,作用是將乙個方法變成屬性,具體的裝飾器實現過程比較的複雜,這裡不過多深入,這篇文章僅僅是針對@property的上層用法的乙個講解。

2.如何使用@property? 

property函式原型為property(fget=none,fset=none,fdel=none,doc=none) 

好吧,其實光看函式原型還是不太好掌握用法,來個實際的例子。

# 這是不使用@property的類

class

boy(object):

def__init__

(self, name):

self.name = name

defget_name

(self):

return self.name

defset_name

(self, new_name):

self.name = new_name

defdel_name

(self):

del self.name

獲取boy的name,改動name,顯示name都需要呼叫不同的函式。

boy = boy('tom')

print(boy.get_name) 獲得 'tom'

# 下面更改一下tom的名字

boy.set_name('alice')

print(boy.get_name()) '獲得'

'alice'

# 刪除name

boy.del_name()

# 使用@property實現上述類

class

boy(object):

def__init__

(self, name):

self.name = name

@property

defname

(self):

return self.name

# 下面這個裝飾器是由上面的@property衍生出來的裝飾器

@name.setter

defname

(self, new_name):

self.name = new_name

# 下面這個裝飾器是由上面的@property衍生出來的裝飾器

@name.deleter

defdel_name

(self):

del self.name

對這個類進行例項化

boy = boy('tom')

# 更新name

boy.name = 'alice'

print(boy.name) # 獲得'alice'

# 刪除name

del boy.name

有沒有一種一氣呵成的感覺。 

紙上得來終覺淺,須知此事要躬行。自己嘗試著將這個裝飾器用起來,理解的速度回更快,下篇文章分享一下@property在資料庫model中的一些小技巧。

python中的 property使用

如下 class animal object def init self,name,age self.name name self.age age a animal zhuzhu 9 a.name out 3 zhuzhu a.age out 4 9 a.age 20 a.age out 5 20在...

python中 property裝飾器

python中有乙個被稱為屬性函式 property 的小概念,它可以做一些有用的事情。在這篇文章中,我們將看到如何能做以下幾點 property 考察 student 類 class student object def init self,name,score self.name name se...

python 中 property的使用

從14年下半年開始接觸到python,自學了一段時間,後又跟別人學習了下,把基礎知識基本上學過了。忽然感覺python不可能這麼簡單吧,就這麼點東西?後來看了下書,發現還有很多的高階部分。連續看了兩天,把裝飾符 看了下,記錄下。裝飾符的作用就是類裡的方法變成屬性使用,比直接呼叫方法要直接簡單 直接上...