Блоки кода в Python

Как говорят некоторые учителя математики: «Бум-чинг!»

То, что вы на самом деле делаете, это добавление 2 + 1.

В математике, когда у вас есть два символа вычитания рядом друг с другом, они объединяются, чтобы сформировать дополнительный символ. По крайней мере, так меня учили в школе.

Так на самом деле, это больше похоже на это,

2 + + 1

, который каждый знает 2 + 1 = 3

(и добро пожаловать в переполнение стека!) [ 117]

10
задан Mike Kinghan 27 July 2018 в 10:46
поделиться

4 ответа

Функции являются первоклассными членами в Python:

def add(x, y):
    return x + y

a = add          # Bind
b = a(34, 1)     # Call

Таким образом, вы можете передавать функции по своему усмотрению. Вы можете сделать то же самое с любым вызываемым объектом в Python.

10
ответ дан 3 December 2019 в 22:01
поделиться

Лямбда является ближайшим эквивалентом блока Ruby, и ограничение в одну строку является преднамеренным . Обычно утверждается, что многострочные анонимные функции (блоки в Ruby) обычно обычно менее читабельны, чем определение функции где-нибудь с именем и передачей этого, как показано в ответе SilentGhost .

. ]
3
ответ дан 3 December 2019 в 22:01
поделиться

def является эквивалентом оператора присваивания, который только связывает объект функции со ссылкой на объект переменная.

Переменная ссылки на объект может затем использоваться для вызова объекта функции для выполнения.

0
ответ дан 3 December 2019 в 22:01
поделиться

Есть хорошие обсуждения на comp.lang.python, которые сравнивают с другими языками:

3
ответ дан 3 December 2019 в 22:01
поделиться