Python предлагает множество функций и одной такой особенности заключается в том, что она имеет возможность реализовывать внутренние функции или вложенные функции. В простых терминах вы можете определить функцию в другой функции. Давайте узнаем о внутренней функции Python/вложенная функция.
Внутренняя функция Python
def outerFunction(a, b): def innerFunction(c, d): return c*d return innerFunction(a, b)
print(outerFunction(10, 20)) Output: 200
В приведенном выше коде внешняя функция называется двумя целочисленными аргументами, и внешняя функция имеет внутреннюю функцию, которая вызывает и возвращает внутреннюю функцию с аргументами внешней функции.
Эта функция в Python помогает нам инкапсулировать функцию.
Если вы попытаетесь вызвать внутреннюю функцию из внешнего объема внешней функции.
Вызывая внутреннюю функцию.
def outerFunction(a, b): def innerFunction(c, d): return c*d return innerFunction(a, b) print(innerFunction(10, 20)) Error: Traceback (most recent call last): File ".\sr.py", line 7, inprint(innerFunction(10, 20)) NameError: name 'innerFunction' is not defined
Таким образом, мы можем сделать вывод, что внутренняя функция заключается в том, что касается глобального масштаба.
Сухой принцип (не повторяешься)
Функция внутренней функции также помогает нам избежать дублирования кода и следит за сухом принципом.
def wish(name): def say(Quote): return f"Good Morning, {name}" return say(name) print(wish("HTD")) Output: Good Morning, HTD
Внутренняя функция В питоне
Внутренние функции Python или вложенные функции могут получить доступ к переменным внешней функции, а также глобальными переменными.
text = "Hey" def wish(): name = "HTD" def say(): quote = "Good Morning" return f"{text} {quote}, {name}" return say() print(wish()) Output: Hey Good Morning, HTD
Переменная внутренних функций имеет локальный объем, который ограничен только этой функцией. Внутренние функции переменные не могут быть доступен на внешней функции.
Узнайте больше из оригинального поста: Внутренняя функция Python
Оригинал: “https://dev.to/divshekhar/python-inner-function-nested-functions-1dbn”