Рубрики
Без рубрики

Внутренняя функция Python / вложенные функции

Python предлагает множество функций и одной такой особенностью, в том, что у него есть возможность реализовать внутренний функнт … Теги с Python, Innerfunction, NestedFunction, Clojure.

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, in 
    print(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”