实现描述符接口的其他装饰器

Dickens的Python项目详细描述


实现描述符接口的其他python装饰器。

用例

与内置的decoratorproperty一样,这些类通常由函数初始化并包装在类的上下文中,以便修改其行为。

缓存属性

这个decorator的功能非常类似于一个只读的property,其区别在于,在访问时,它将其结果记录在实例的对象数据字典中,该字典在查找时优先引用,从而替换该对象的自身:

from descriptors import cachedproperty

@cachedproperty
def circumference(self):
    return 2 * math.pi * self.radius

类属性

类方法的只读property

from descriptors import classproperty

@classproperty
def badpi(cls):
    return 22 / 7

缓存类属性

一个类property,它将其结果缓存在调用它的类的数据字典中(使用另一个名称,以免影响属性的继承):

from descriptors import cachedclassproperty

@cachedclassproperty
def badpi(cls):
    return 22 / 7

安装

狄更斯是一个python发行版,可以通过easy_installpip安装,例如

pip install Dickens

…或者,来源:

python setup.py install

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java应用程序不是在Eclipse中运行,而是在命令行中运行   swing Java图形组件问题。似乎找不到错误   我需要键盘。close();让代码正常工作?   Springboot中的java HttpSession   抽象语法树我想添加一个语句。我试图解析它,java解析器异常被抛出。如何克服它?   java Hibernate:清理会话   具有不连续子集的java划分问题   java正则表达式查找最后一个冒号后的字符串   java从SpringShell执行OS命令   Java扫描器字符串输入   java字符串索引越界异常(charAt)   java执行器服务终止被卡住   Springockito没有继承java@ContextConfiguration   java如何为一个servlet映射多个url   java安卓获取命令的stderr   java生成类型。表:数据库中的大数字   安卓 Getter Setter返回NothingJava