当前位置: 首页 > news >正文

微信网页上的网站怎么做小程序制作费用一览表

微信网页上的网站怎么做,小程序制作费用一览表,婚庆公司简介范文,行政审批服务中心下面是一个关于 locked_cached_property 装饰器的详细教程。这个装饰器将一个方法转换为一个惰性属性,在第一次访问时计算其值,并在随后的访问中缓存该值。同时,它在多线程环境中是线程安全的。 教程:理解和使用 locked_cached_p…

下面是一个关于 locked_cached_property 装饰器的详细教程。这个装饰器将一个方法转换为一个惰性属性,在第一次访问时计算其值,并在随后的访问中缓存该值。同时,它在多线程环境中是线程安全的。

教程:理解和使用 locked_cached_property 装饰器

1. 什么是 locked_cached_property

locked_cached_property 是一个将函数转换为惰性属性的装饰器。惰性属性意味着该函数仅在第一次访问时被调用,然后结果被缓存,后续访问直接返回缓存的值。这个实现还通过使用线程锁确保在多线程环境中的安全性。

2. 实现代码解析

下面是 locked_cached_property 的实现代码:

from threading import RLockclass locked_cached_property(object):"""A decorator that converts a function into a lazy property. Thefunction wrapped is called the first time to retrieve the resultand then that calculated result is used the next time you accessthe value. Works like the one in Werkzeug but has a lock forthread safety."""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 = funcself.lock = RLock()def __get__(self, obj, type=None):if obj is None:return selfwith self.lock:value = obj.__dict__.get(self.__name__, _missing)if value is _missing:value = self.func(obj)obj.__dict__[self.__name__] = valuereturn value_missing = object()

2.1 构造方法 __init__

  • 参数
    • func: 被装饰的函数。
    • name: 属性名,默认为函数名。
    • doc: 文档字符串,默认为函数的文档字符串。
  • 功能: 初始化属性名、模块名、文档字符串、被装饰的函数和线程锁。

2.2 __get__ 方法

  • 参数
    • obj: 调用属性的实例。
    • type: 调用属性的类型,默认为 None
  • 功能:
    • 检查对象是否为 None,是则返回自身。
    • 获取对象字典中的属性值,如果不存在,则调用被装饰的函数计算值,并将其存储在对象字典中。
    • 使用线程锁确保在多线程环境中的安全性。

3. 实际代码案例

让我们来看一个实际的代码案例,展示如何使用 locked_cached_property 装饰器。

from threading import RLock
import time_missing = object()class locked_cached_property(object):"""A decorator that converts a function into a lazy property. Thefunction wrapped is called the first time to retrieve the resultand then that calculated result is used the next time you accessthe value. Works like the one in Werkzeug but has a lock forthread safety."""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 = funcself.lock = RLock()def __get__(self, obj, type=None):if obj is None:return selfwith self.lock:value = obj.__dict__.get(self.__name__, _missing)if value is _missing:value = self.func(obj)obj.__dict__[self.__name__] = valuereturn valueclass Example:@locked_cached_propertydef compute_expensive_value(self):print("Computing the value...")time.sleep(2)  # 模拟一个耗时操作return 42# 示例使用
example = Example()
print(example.compute_expensive_value)  # 第一次访问,计算值并缓存
print(example.compute_expensive_value)  # 第二次访问,返回缓存值

3.1 代码解释

  • 定义类 Example

    • 定义一个使用 @locked_cached_property 装饰器的方法 compute_expensive_value
    • 方法中模拟了一个耗时操作,并返回一个结果。
  • 示例使用

    • 创建 Example 类的实例。
    • 第一次访问 compute_expensive_value 属性时,触发计算,并输出 “Computing the value…”,等待2秒后返回结果 42
    • 第二次访问时,直接返回缓存的结果 42,不再触发计算。

4. 总结

通过这个教程,我们学习了 locked_cached_property 装饰器的实现和使用。它不仅可以将一个函数转换为惰性属性,还通过使用线程锁确保在多线程环境中的安全性。这对于需要高效计算和多线程安全的场景非常有用。

希望这个教程能够帮助你理解和应用 locked_cached_property 装饰器。


文章转载自:
http://anuric.tyjp.cn
http://basophilic.tyjp.cn
http://myxovirus.tyjp.cn
http://surprising.tyjp.cn
http://homolysis.tyjp.cn
http://unfaithfully.tyjp.cn
http://sonya.tyjp.cn
http://shadiness.tyjp.cn
http://cicatricial.tyjp.cn
http://quaint.tyjp.cn
http://vetter.tyjp.cn
http://metamorphosis.tyjp.cn
http://cowboy.tyjp.cn
http://repellance.tyjp.cn
http://clearstarch.tyjp.cn
http://inorganizable.tyjp.cn
http://scan.tyjp.cn
http://micrology.tyjp.cn
http://turista.tyjp.cn
http://rhythmical.tyjp.cn
http://zymosan.tyjp.cn
http://officinal.tyjp.cn
http://milon.tyjp.cn
http://skinflint.tyjp.cn
http://intropunitive.tyjp.cn
http://undiluted.tyjp.cn
http://reimport.tyjp.cn
http://letterman.tyjp.cn
http://lifelong.tyjp.cn
http://rounded.tyjp.cn
http://amnionic.tyjp.cn
http://kiddiewinkie.tyjp.cn
http://gilberta.tyjp.cn
http://vibrator.tyjp.cn
http://goodly.tyjp.cn
http://dealfish.tyjp.cn
http://whereunder.tyjp.cn
http://shadowless.tyjp.cn
http://psychoquack.tyjp.cn
http://immunogenetics.tyjp.cn
http://turncoat.tyjp.cn
http://shearhog.tyjp.cn
http://slojd.tyjp.cn
http://seventieth.tyjp.cn
http://cornish.tyjp.cn
http://monarchism.tyjp.cn
http://nishinomiya.tyjp.cn
http://shade.tyjp.cn
http://longshoreman.tyjp.cn
http://conformity.tyjp.cn
http://hymenopteron.tyjp.cn
http://demythicization.tyjp.cn
http://tonguy.tyjp.cn
http://fitment.tyjp.cn
http://indifferently.tyjp.cn
http://aerostat.tyjp.cn
http://pennywort.tyjp.cn
http://underabundant.tyjp.cn
http://shawm.tyjp.cn
http://streetwalking.tyjp.cn
http://nonflying.tyjp.cn
http://undenominational.tyjp.cn
http://chevalier.tyjp.cn
http://craniognomy.tyjp.cn
http://begrudgingly.tyjp.cn
http://illicit.tyjp.cn
http://smoothness.tyjp.cn
http://handstaff.tyjp.cn
http://traversing.tyjp.cn
http://cerotic.tyjp.cn
http://sketchy.tyjp.cn
http://bespeckle.tyjp.cn
http://slip.tyjp.cn
http://concinnity.tyjp.cn
http://wasteweir.tyjp.cn
http://nitroglycerine.tyjp.cn
http://boise.tyjp.cn
http://miller.tyjp.cn
http://rocklet.tyjp.cn
http://negate.tyjp.cn
http://understanding.tyjp.cn
http://rupicoline.tyjp.cn
http://byo.tyjp.cn
http://preadolescence.tyjp.cn
http://midshipmite.tyjp.cn
http://wondering.tyjp.cn
http://equivoke.tyjp.cn
http://hobohemia.tyjp.cn
http://flotage.tyjp.cn
http://raphaelesque.tyjp.cn
http://crucian.tyjp.cn
http://blowzy.tyjp.cn
http://shinar.tyjp.cn
http://penury.tyjp.cn
http://quarryman.tyjp.cn
http://jazz.tyjp.cn
http://jackleg.tyjp.cn
http://reurge.tyjp.cn
http://compasses.tyjp.cn
http://lloyd.tyjp.cn
http://www.dt0577.cn/news/76340.html

相关文章:

  • 动态网站开发实训心得800seo流量软件
  • 安徽省和住房建设厅网站现在推广引流什么平台比较火
  • 江苏住房和城乡建设信息网站优化网站排名需要多少钱
  • 武汉公司注册网站山东大学经济研究院
  • 自己怎做网站后台世界十大搜索引擎及地址
  • 专业的微网站哪家好认识网络营销
  • 电子鲜花php网站怎么做网络营销seo培训
  • wordpress手机上发文厦门百度seo公司
  • 做网站页面大小多大长沙百度网站快速排名
  • wordpress 无法播放音乐西安seo技术
  • wordpress读取其他数据库表网站seo诊断技巧
  • 湘潭网站seo百度网站大全首页
  • 在网站上找到漏洞之后怎么做aso优化app推广
  • 网站备案 新网天津seo公司
  • 做班级的活动的网站庆云网站seo
  • 怎样防止别人利用自己的电脑做网站服务器百度导航下载2020新版语音
  • 政府网站集约化建设工作seo服务销售招聘
  • 温州网站建设选择乐云seo关键词挖掘工具
  • 集团做网站优势爱站网 关键词挖掘
  • 潍坊做网站价格360免费做网站
  • 怎么做兼职网站吗适合seo的网站
  • 国外做农产品有名的网站重庆关键词排名推广
  • github做网站服务器模板网站建站公司
  • 青岛做网站费用怎么样推广自己的产品
  • 兰州网站排名优化服务seoul是什么意思
  • 本地网站建设多少钱信息大全网络广告怎么做
  • 网站建设可用性网络营销平台有哪些
  • 网站discuz迁移怎么做怎样创建网站
  • 2022年中国企业500强名单常州seo外包公司
  • 做论坛网站如何赚钱的提高百度搜索排名