备忘录词典

thunk-dict的Python项目详细描述


重击指令

允许对可调用项进行延迟计算和记忆的词典。thunk dict的目的是作为一个方便的包装器,对潜在的计算代价高昂的调用进行懒散的评估。

用例

因为python急切地求值表达式,所以如果不首先求值这些调用,就不可能在字典中包含对函数的调用。为了模仿懒惰的评估,可以使用如下技巧:

dictionary={"key1":computationally_expensive_function}# Call the function later onresult=dictionary["key1"]()

或者,如果以后还想传入参数,

dictionary={"key1":lambda*args,**kwargs:computationally_expensive_function(*args,**kwargs)}# Call the function later onresult=dictionary["key1"]("blah",parameter=100)

但是,这种方法有两个问题:

  1. 它使词典及其条目的键入复杂化,并创建样板文件(如第二个示例中所示)。
  2. 重新访问需要再次调用计算开销较大的函数(即调用未被记录)

thunk dict试图解决这两个问题。

fromthunk_dictimportThunkDictdictionary=ThunkDict({"key1":computationally_expensive_function})# Get result from call via simple accessresult=dictionary["key1"]# Subsequent accesses use the memoized result.

对于不可压缩的条目,thunk dict的工作方式与常规dict类似。thunk dict还具有与常规python字典相同的api,这意味着您不必使用其包装器来牺牲任何东西。

功能

  1. 字典中方便的类似于thunk的行为
  2. 适用于使用dict注册的任何对象
  3. 非常低的开销

安装

来自PYPI

pip install thunk-dict

来自源分布

git clone https://github.com/kevalii/thunk-dict.git
cd https://github.com/kevalii/thunk-dict.git
pip install .

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

推荐PyPI第三方库


热门话题
java如何将UDP消息从桌面发送到移动设备?   java DefaultMessageListenerContainer使用JMX+ActiveMQ在单个队列上管理多个使用者   java CMU Sphinx:Voxforge德国型号不精确   java生成一个定制的lastIndexOf方法   java生成pdf PDFBox无头docker容器失败   java实例化HashMap中存储的类的实例   java将JAAS表单身份验证传递给REST服务   爪哇:Tomcat。伊奥。IOException:无法创建目标“xxx”目录“   java GoogleTokenResponse未执行。。!   java Lastmodified标头在第二次刷新后不工作   java Android onClickListener没有注册点击(我想)   当引导调用远程模式时,不会加载java Google reCaptcha   java将二进制字符串转换为字节数组   java为JPA本机查询的结果分配ID的最简单方法是什么?   java上的数组参数行为   组织中的java字段数据源。O7计划。关于公司。MainController需要“javax”类型的bean。sql。找不到“数据源”   java如何使用selenium在excel文件中查找字符串的位置   java Hibernate注释。如何注释?   在Java中反转字符串时出错