定義方式(經典類)
class fun():
@property
def size(self):
return 100
fun = fun()
print(fun.size)
100
class fun():
def __init__(self):
self.num = 0
@property
def price(self):
print("get @property")
return self.num
@price.setter
def price(self, value):
self.num = value
print("set @price.setter")
@price.deleter
def price(self):
print("del @price.deleter")
obj = fun()
print(obj.price) # 可以獲取**,呼叫property裝飾器
obj.price = 100 # 修改**,呼叫price.setter裝飾器
del obj.price # 刪除**,呼叫price.deleter裝飾器
get @property
0set @price.setter
del @price.deleter`
可以使用proerty來替代原有的封裝的set和get方法
#coding=utf-8
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__ # 自動獲取第四個引數中設定的值:description...
print(desc)
del obj.bar # 自動呼叫第三個引數中定義的方法:del_bar方法
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不可能這麼簡單吧,就這麼點東西?後來看了下書,發現還有很多的高階部分。連續看了兩天,把裝飾符 看了下,記錄下。裝飾符的作用就是類裡的方法變成屬性使用,比直接呼叫方法要直接簡單 直接上...