python方法的部分应用。

curr的Python项目详细描述


概述

此库提供了一种在绑定时使用部分应用程序的机制 方法使用AST(抽象语法树)转换。你可以使用 作为优化方法的部分应用程序,代码的替代方法 生成(间接生成或通过ast抽象生成)。

具体做法介于"讨好"和 烹饪。我们通过遍历ast手动解释python代码, 遵循标准的python逻辑(逐字解释 节点)。可在行走时执行的计算被保存 供日后参考(可能时丢弃)。如果可能的话, 使用正在运行的解释器进行计算。

用法

您可以对任何绑定方法使用 cook 函数。

< Buff行情>
>>> from curry import cook
>>> cooked = cook(some_bound_method)

示例

起点是某个类的实例:

>>> class Example(object):
...     def __init__(self, value):
...         self.value = value
...
...     def __call__(self, other):
...         return self.value + other

然后我们可以对一些 实例:

>>> from curry import cook
>>> example = Example(1)
>>> cooked = cook(example.__call__)
>>> cooked(1)
2

作为功能测试套件的一部分,还包括其他示例; 它们还可以作为文档,是 了解何时以及如何使用部分应用程序。

酸洗

该库包括一个替代内置的pickle模块 (及其C-扩展对应项):

>>> from curry import dumps, loads
>>> p = dumps(some_object)
>>> some_object = loads(p)

使这些函数有趣的是它们的性能和空间 性质。产生的"泡菜"通常要小50%,可能 解锁速度提高50%(或降低200%)。有一个 注意:酸洗操作本身要慢20倍。

这个pickle实现充其量是实验性的,但可能是 适用于你比你更频繁地脱钩的情况 你泡菜。例如,它可以用于对象数据存储 经常阅读。

请注意,生成的pickle易受 解释器版本之间不兼容(它使用 封送 模块以序列化代码。

作者

这个图书馆是由Malthe Borch开发和维护的 <; mborch @ gmail com >;。ast实用程序库改编自 Genshi代码库,2008 Edgewall软件版权所有(C)。

此软件在BSD许可证下发布和维护。

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

推荐PyPI第三方库


热门话题
java将多个线程中的函数放入单个队列   数组在Java中,如何在不改变整数顺序的情况下找到整数组的顺序?   java控制器属于表示层?   java Apache Ivy和本地Maven repo如何处理使用Maven 3构建的快照   Java可与泛型类型进行比较   java这个表达式在泛型中是什么意思   JavaEclipse和TeamCity插件   java检测构造函数中的final是否为空   java如何在StanfordCoreNLP管道中同时使用词汇化和依赖性解析器?   java在AntUnit控制台日志中显示完整异常堆栈跟踪   lambda如何与Java 8供应商建立连锁关系   如何让GRPC的重试机制在Kubernetes集群中使用grpcjava工作?   如何使用openjdk:7 Docker映像和Gradle包装器避免“EC参数错误”?   java将集合映射扩展为一维映射新的“无法推断函数接口类型”