Python模拟Groovy的吗?

时间:2013-12-09 20:29:31

标签: python groovy syntactic-sugar

Groovy为简单的clojures提供了很好的语法,这就消除了对explitly命名的需要 单个参数。默认情况下,它将命名为 it

def closure = { print it }
closure( "hi there" ) //prints "hi there"

在Python中模拟 it magikal参数的最佳方法是什么?

我想要的例子:

>>> it = It()
>>> print map(it + 5, [1, 2, 3])
[6, 7, 8]

3 个答案:

答案 0 :(得分:3)

你只需给你的lambda或函数一个显式的第一个参数:

lambda it: ' {}'.format(it)

这符合Zen of Python

  

显式优于隐式

答案 1 :(得分:1)

到目前为止,我已经在我的问题上找到了确切的答案。这是库fn.py,它实现了_ magikal变量和一些可用的函数式编程概念。

使用示例:

>>> from fn import _
>>> list(map(_ * 2, range(5)))
[0,2,4,6,8]

答案 2 :(得分:0)

我的第一个想法是用magik方法做一些magikal it 对象,产生curried函数。

class It :
    def __add__(self, another_one) :
         return lambda x: x + another_one



it = It()
print map(it + 5, [1, 2, 3])