东西进去了。东西被砍了。事情过去了。
项目描述
Knife是一个强大的Python多功能工具,其灵感来自Underscore.js ,但经过重新混合以获得最大的Pythonicity。
Knife将通常分散在整个 Python 世界中的力量集中在一个方便的收缩包装中。
命脉
刀适用于 CPython 2.6、2.7、3.1。和 3.2 和 PyPy 1.8。
刀文档位于http://readthedocs.org/docs/knife/en/latest/或 http://packages.python.org/knife/
安装
用pip安装刀……:
$ pip install knife [... possibly exciting stuff happening ...] Successfully installed knife
…或easy_install …:
$ easy_install knife [... possibly exciting stuff happening ...] Finished processing dependencies for knife
……或者通过从http://pypi.python.org/pypi/knife/下载刀来实现老派:
$ python setup.py install [... possibly exciting stuff happening ...] Finished processing dependencies for knife
发展
3秒刀
东西进去:
>>> from knife import __ >>> gauntlet = __(5, 4, 3, 2, 1)
事情被砍了:
>>> gauntlet.initial().rest().slice(1, 2).last() knife.lazy.lazyknife ([IN: ([3]) => WORK: ([]) => HOLD: ([]) => OUT: ([3])])
事情出来了:
>>> gauntlet.get() 3
刀多一点
Knife有 40 多种方法可以链接到管道中……
人为的例子:
>>> __(5, 4, 3, 2, 1).initial().rest().slice(1, 2).last().get() 3
…或使用面向对象的风格。
人为的例子:
>>> from knife import knife >>> oo = knife(5, 4, 3, 2, 1) >>> oo.initial() knife.active.activeknife ([IN: ([5, 4, 3, 2, 1]) => WORK: ([]) => HOLD: ([]) => OUT: ([5, 4, 3, 2])]) >>> oo.rest() knife.active.activeknife ([IN: ([5, 4, 3, 2]) => WORK: ([]) => HOLD: ([]) => OUT: ([4, 3, 2])]) >>> oo.slice(1, 2) knife.active.activeknife ([IN: ([4, 3, 2]) => WORK: ([]) => HOLD: ([]) => OUT: ([3])]) >>> oo.last() knife.active.activeknife ([IN: ([3]) => WORK: ([]) => HOLD: ([]) => OUT: ([3])]) >>> oo.get() 3
刀对象可以将其当前状态回滚到以前的状态,例如之前操作的快照、基线快照,甚至是原始参数的快照。
人为的例子:
>>> undone = __(1, 2, 3).prepend(1, 2, 3, 4, 5, 6) >>> undone.peek() [1, 2, 3, 4, 5, 6, 1, 2, 3] >>> undone.append(1).undo().peek() [1, 2, 3, 4, 5, 6, 1, 2, 3] >>> undone.append(1).append(2).undo(2).peek() [1, 2, 3, 4, 5, 6, 1, 2, 3] >>> undone.snapshot().append(1).append(2).baseline().peek() [1, 2, 3, 4, 5, 6, 1, 2, 3] >>> undone.original().peek() [1, 2, 3]
刀具对象有两种风格:主动和懒惰。 active.knife对象在调用后立即评估调用方法的结果。使用lazy.knife对象调用相同的方法仅在迭代或调用knife.lazy.lazyknife.get以获取结果时才会产生结果。
knife.lazy.lazyknife将所有的刀方法组合在一个类中:
>>> from knife import lazyknife
它可以在其dunderscore ( knife.__ ) 别名下导入。
>>> from knife import __
knife.active.activeknife还将每个刀方法组合在一个组合刀类中:
>>> from knife import activeknife
它可以在它的knife.knife别名下导入:
>>> from knife import knife
刀方法在更集中的类中可用,这些类将相关方法组合在一起。这些类也可以链接到管道中。
人为的例子:
>>> from knife.active import mathknife, reduceknife >>> one = mathknife(10, 5, 100, 2, 1000) >>> two = reduceknife() >>> one.minmax().pipe(two).merge().back().min().get() 2 >>> one.original().minmax().pipe(two).merge().back().max().get() 1000 >>> one.original().minmax().pipe(two).merge().back().sum().get() 1002
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
knife-0.5.11.zip的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 6630d52e6e1eb04defce69555d627cd87935cddb0b332d1ed4e09b53cb4746e0 |
|
| MD5 | f31e51bc7bd57e56960498aa7c5e4ad4 |
|
| 布莱克2-256 | 8f44f6b867f97dd24115b3166c5542ddec71801132d0986772d7578158acb8fb |