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不可能這麼簡單吧,就這麼點東西?後來看了下書,發現還有很多的高階部分。連續看了兩天,把裝飾符 看了下,記錄下。裝飾符的作用就是類裡的方法變成屬性使用,比直接呼叫方法要直接簡單 直接上...