Как говорят некоторые учителя математики: «Бум-чинг!»
То, что вы на самом деле делаете, это добавление 2 + 1.
В математике, когда у вас есть два символа вычитания рядом друг с другом, они объединяются, чтобы сформировать дополнительный символ. По крайней мере, так меня учили в школе.
Так на самом деле, это больше похоже на это,
2 + + 1
, который каждый знает 2 + 1 = 3
(и добро пожаловать в переполнение стека!) [ 117]
Функции являются первоклассными членами в Python:
def add(x, y):
return x + y
a = add # Bind
b = a(34, 1) # Call
Таким образом, вы можете передавать функции по своему усмотрению. Вы можете сделать то же самое с любым вызываемым объектом в Python.
Лямбда
является ближайшим эквивалентом блока Ruby, и ограничение в одну строку является преднамеренным . Обычно утверждается, что многострочные анонимные функции (блоки в Ruby) обычно обычно менее читабельны, чем определение функции где-нибудь с именем и передачей этого, как показано в ответе SilentGhost .
def
является эквивалентом оператора присваивания, который только связывает объект функции со ссылкой на объект переменная.
Переменная ссылки на объект может затем использоваться для вызова объекта функции для выполнения.
Есть хорошие обсуждения на comp.lang.python, которые сравнивают с другими языками: