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许可证下发布和维护。