事情进展顺利。事情变得很紧张。一切都结束了。
knife的Python项目详细描述
刀是一种功能强大的多刀具 灵感来源于Underscore.js 但重新混合为最大pythonicity。
刀集中通常分散在整个 python宇宙在一个方便的收缩包装包。
生命体征
刀子与cpython 2.6,2.7,3.1一起工作。3.2和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
开发
- Public repository: https://bitbucket.org/lcrees/knife.
- Mirror: https://github.com/lcrees/knife/
- Issue tracker: https://bitbucket.org/lcrees/knife/issues
- License: BSD
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
稍微多点刀
刀子有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来获得结果。
刀.lazy.lazy knife将所有刀方法合并到一个类中:
>>> from knife import lazyknife
它可以在其dunderscore(刀./cite>)别名下导入。
>>> from knife import __
刀.active.active刀还将每个刀方法组合在一起 组合刀
>>> from knife import activeknife
它可以通过它的刀子导入。刀子别名:
>>> 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