classPerson(object):
""""""
#----------------------------------------------------------------------
def__init__(self, first_name, last_name):
"""Constructor"""
self.first_name = first_name
self.last_name = last_name
#----------------------------------------------------------------------
@property
deffull_name(self):
"""
Return the full name
"""
return"%s %s"% (self.first_name, self.last_name)
if__name__=="__main__":
person = Person("Mike","Driscoll")
print(person.full_name)
# 'Mike Driscoll'
print(person.first_name)
# 'Mike'
classProperty(object):
"Emulate PyProperty_Type() in Objects/descrobject.c"
def__init__(self, fget=None, fset=None, fdel=None, doc=None):
self.fget = fget
self.fset = fset
self.fdel = fdel
ifdocisNoneandfgetisnotNone:
doc = fget.__doc__
self.__doc__ = doc
def__get__(self, obj, objtype=None):
ifobjisNone:
returnself
ifself.fgetisNone:
raiseAttributeError("unreadable attribute")
returnself.fget(obj)
def__set__(self, obj, value):
ifself.fsetisNone:
raiseAttributeError("can't set attribute")
self.fset(obj, value)
def__delete__(self, obj):
ifself.fdelisNone:
raiseAttributeError("can't delete attribute")
self.fdel(obj)
defgetter(self, fget):
returntype(self)(fget, self.fset, self.fdel, self.__doc__)
defsetter(self, fset):
returntype(self)(self.fget, fset, self.fdel, self.__doc__)
defdeleter(self, fdel):
returntype(self)(self.fget, self.fset, fdel, self.__doc__)
classPerson(object):
""""""
#----------------------------------------------------------------------
def__init__(self, first_name, last_name):
"""Constructor"""
self.first_name = first_name
self.last_name = last_name
#----------------------------------------------------------------------
@Property
deffull_name(self):
"""
Return the full name
"""
return"%s %s"% (self.first_name, self.last_name)
if__name__=="__main__":
person = Person("Mike","Driscoll")
print(person.full_name)
# 'Mike Driscoll'
print(person.first_name)
# 'Mike'
@Property deffull_name(self): """ Return the full name """ return"%s %s"% (self.first_name, self.last_name)
defa(self): pass if__name__=="__main__": a=A() a.a()
importmath
classlazyproperty:
def__init__(self, func):
self.func = func
def__get__(self, instance, owner):
ifinstanceisNone:
returnself
else:
value = self.func(instance)
setattr(instance, self.func.__name__, value)
returnvalue
classCircle:
def__init__(self, radius):
self.radius = radius
pass
@lazyproperty
defarea(self):
print("Com")
returnmath.pi * self.radius *2
deftest(self):
pass
if__name__=='__main__':
c=Circle(4)
print(c.area)
classlazyproperty:
def__init__(self, func):
self.func = func
def__get__(self, instance, owner):
ifinstanceisNone:
returnself
else:
value = self.func(instance)
setattr(instance, self.func.__name__, value)
returnvalue
def__set__(self, instance, value=0):
pass
importmath
classCircle:
def__init__(self, radius):
self.radius = radius
pass
@lazyproperty
defarea(self, value=0):
print("Com")
ifvalue ==0andself.radius ==0:
raiseTypeError("Something went wring")
returnmath.pi * value *2ifvalue !=0elsemath.pi * self.radius *2
deftest(self):
pass
classProperty(object):
"Emulate PyProperty_Type() in Objects/descrobject.c"
def__init__(self, fget=None, fset=None, fdel=None, doc=None):
self.fget = fget
self.fset = fset
self.fdel = fdel
ifdocisNoneandfgetisnotNone:
doc = fget.__doc__
self.__doc__ = doc
def__get__(self, obj, objtype=None):
ifobjisNone:
returnself
ifself.fgetisNone:
raiseAttributeError("unreadable attribute")
returnself.fget(obj)
def__set__(self, obj, value=None):
ifvalueisNone:
raiseTypeError("You can`t to set value as None")
ifself.fsetisNone:
raiseAttributeError("can't set attribute")
self.fset(obj, value)
def__delete__(self, obj):
ifself.fdelisNone:
raiseAttributeError("can't delete attribute")
self.fdel(obj)
defgetter(self, fget):
returntype(self)(fget, self.fset, self.fdel, self.__doc__)
defsetter(self, fset):
returntype(self)(self.fget, fset, self.fdel, self.__doc__)
defdeleter(self, fdel):
returntype(self)(self.fget, self.fset, fdel, self.__doc__)
classtest():
def__init__(self, value):
self.value = value
@Property
defValue(self):
returnself.value
@Value.setter
deftest(self, x):
self.value = x
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有