|
|
|
|
@ -433,24 +433,7 @@ TypeError: 'tuple' object does not support item assignment
|
|
|
|
|
102.36921585741014
|
|
|
|
|
```
|
|
|
|
|
Вызов лямбда-функции создает объект класса "функция", который потом можно положить в другую переменную
|
|
|
|
|
и далее вызывать. Но это делать необязательно: если она используется один раз, можно вызвать ее сразу,
|
|
|
|
|
например:
|
|
|
|
|
```
|
|
|
|
|
>>> r = (lambda a, b: a**2 + b)(5, 2) # Это результат функции, а не объект класса "функция"
|
|
|
|
|
>>> r
|
|
|
|
|
27
|
|
|
|
|
```
|
|
|
|
|
Внутри лямбда-функции не могут использоваться многострочные выражения, например:
|
|
|
|
|
```
|
|
|
|
|
>>> r1 = lambda: (for i in range(5): print(i))
|
|
|
|
|
SyntaxError: invalid syntax
|
|
|
|
|
```
|
|
|
|
|
Но при этом:
|
|
|
|
|
```
|
|
|
|
|
>>> r1 = lambda: (print(i) for i in range(5))
|
|
|
|
|
>>>
|
|
|
|
|
```
|
|
|
|
|
Аналогично нельзя использовать if-else, но можно использовать тернарный оператор.
|
|
|
|
|
и далее вызывать.
|
|
|
|
|
|
|
|
|
|
### Пункт 5.2. Функции-генераторы
|
|
|
|
|
|
|
|
|
|
|