Pythonにおけるproperty属性の概論と使用方法
1734 ワード
propertyプロパティコンセプト: は1つの方法を定義するが、装飾器propertyを使用してselfパラメータ を1つしか持たない.は、このような属性で属性の値 を動的に取得することができる.
定義方式(クラシッククラス) 定義方式(新式クラス) propertyメソッドを使用してpropertyプロパティを作成する
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
0
set @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