2013-12-09 3 views
0

Groovy имеет хороший синтаксис для простых clojures, что устраняет необходимость в явном описании единственного параметра. Он будет называться по умолчанию.Python аналог для Groovy's это?

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

Что является лучшим способом для эмуляции это magikal параметра в Python?

Пример того, что я хочу:

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

Так что ожидаемый вход и выход? –

+3

Нет, Python не имеет неявного «первого аргумента» для lambdas или функций. Явный лучше, чем неявный. –

+0

@MartijnPieters Я уверен, что Python не может этого сделать. Я ищу трюк, чтобы сделать что-то подобное. – uhbif19

ответ

1

До сих пор я нашел точный андерс по моему вопросу. Это библиотека fn.py, которая реализует _ magikal variable и некоторые используемые концепции функционального программирования.

Пример использования:

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

Вы просто дайте лямбда или функцию в явный первый аргумент:

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

Это соответствует с Zen of Python:

Явный лучше, чем неявный

0

My first yougt to do magikal it объект с магическими методами, производящий curryied функцию.

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



it = It() 
print map(it + 5, [1, 2, 3]) 
Смежные вопросы