屬性方法寫法
# 屬性方法寫法1
class Info:
@property # 變成屬性方法
def get_name(self):
return '123'
@get_name.setter # 給屬性方法,增加一個setter方法,setter 表示設定
def get_name(self, vaule):
print('設定', vaule)
@get_name.deleter # 給屬性方法,增加一個 deleter 方法,deleter 表示刪除
def get_name(self, vaule):
pass
obj = Info()
ret = obj.get_name # 不是屬性方法呼叫:obj.get_name(),變成屬性方法時,呼叫時不需要在後面加()
print(ret)
obj.get_name = 999 # 這種語法時,此時就會自動呼叫get_name中的setter方法
print(ret)
del obj.get_name # 會自動呼叫get_name裡面的 deleter方法
print(ret)
# 屬性方法寫法2,在開發中使用比較少,在web django框架中,使用比較多
class Info:
# 變成屬性方法
def getx(self):
return '123'
# 給屬性方法,增加一個setter方法,setter 表示設定
def setx(self, vaule):
print('設定', vaule)
# 給屬性方法,增加一個 deleter 方法,deleter 表示刪除
def delx(self):
pass
x = property(getx, setx, delx)
obj = Info()
obj.x # 會自動呼叫:getx 方法
obj.x = 123 # 會自動呼叫: setx 方法
del obj.x # 會自動呼叫: delx 方法
{{uploading-image-866291.png(uploading...)}}