今天簡單的實現(xiàn)下Porperty裝飾器
demo:
站在用戶的角度思考問題,與客戶深入溝通,找到自流井網(wǎng)站設(shè)計與自流井網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都做網(wǎng)站、成都網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、申請域名、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋自流井地區(qū)。
class Porperty:
def __init__(self, fget= None, fset= None, fdel = None):
self.fget= fget
self.fset = fset
self.fdel = fdel
def __get__(self, instance, cls):
if instance is None:
return self
if not callable(self.fget):
raise AttributeError
return self.fget(instance)
def __set__(self, instance, value):
if not callable(self.fset):
raise AttributeError
return self.fset(instance, value)
def __delete__(self, instance):
if not callable(self.fdel):
raise AttributeError
return self.fdel(instance)
def setter(self, fset):
self.fset = fset
return self.fset
def deleter(self, fdel):
self.fdel = fdel
return self.fdel
class A:
def __init__(self,x):
self._x = x
@Porperty
def x(self):
return self._x
a =A(4)
a.x
a.x = 123
class A:
def __init__(self,x):
self._x = x
@Porperty
def x(self):
return self._x
@x.setter
def set_x(self, value):
self._x = value
a = A(5)
a.x
a.x = 7