class WebFramework(object):
def __init__(self, name='Flask'):
self.name = name
def __get__(self, instance, owner):
return self.name
def __set__(self, instance, value):
self.name = value
class PythonSite(object):
webframework = WebFramework()
In [1]: PythonSite.webframework
Out[1]: 'Flask'
In [2]: PythonSite.webframework = 'Tornado'
In [3]: PythonSite.webframework
Out[3]: 'Tornado'
In [15]: webframework = WebFramework() In [16]: webframework.__get__(webframework, WebFramework) Out[16]: 'Flask'
class _Missing(object):
def __repr__(self):
return 'no value'
def __reduce__(self):
return '_missing'
_missing = _Missing()
class cached_property(object):
def __init__(self, func, name=None, doc=None):
self.__name__ = name or func.__name__
self.__module__ = func.__module__
self.__doc__ = doc or func.__doc__
self.func = func
def __get__(self, obj, type=None):
if obj is None:
return self
value = obj.__dict__.get(self.__name__, _missing)
if value is _missing:
value = self.func(obj)
obj.__dict__[self.__name__] = value
return value
class Foo(object):
@cached_property
def foo(self):
print 'first calculate'
result = 'this is result'
return result
f = Foo()
print f.foo # first calculate this is result
print f.foo # this is result
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有