Skip to main content

东西进去了。东西被砍了。事情过去了。

项目描述

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 (31.5 kB 查看哈希

已上传 source

Knife-0.5.11.tar.gz (23.9 kB 查看哈希)

已上传 source