|
@@ -203,3 +203,20 @@ setattr(obj, name_attr, value)
|
|
|
Вложенные функции имеют доступ к параметрам и к переменным, определенным во внешней функции. Применяются в замыканиях.
|
|
|
Определяются в момент вызова родительской функции.
|
|
|
|
|
|
+~={yellow}Функция высшего порядка=~ - это функция, которая может принимать другие функции в качестве аргументов и/или возвращать функции в качестве выходных данных.
|
|
|
+```python
|
|
|
+def get_math_func(operation='+'):
|
|
|
+ def add(a, b):
|
|
|
+ return a + b
|
|
|
+
|
|
|
+# Вызов сразу с помощью дополнительного оператора вызова
|
|
|
+print(get_math_func('+')(3, 4))
|
|
|
+```
|
|
|
+
|
|
|
+Аннотация функций вложенных:
|
|
|
+```python
|
|
|
+from typing import Callable
|
|
|
+
|
|
|
+def get_math_func(operation: str) -> Callable[[int, int], int]:
|
|
|
+ ...
|
|
|
+```
|