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

Внутренние функции Python

Автор оригинала: Python Examples.

Внутренние функции Python

В Python вы можете определить одну или несколько функций внутри функции. Функции внутри функции называются внутренними функциями.

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

Пример 1: внутренние функции

В этом примере мы определим простую функцию с двумя внутренними функциями.

Python Program

def function():
    print('Inside function.')

    def innerFunction1():
        print('Inner function 1.')

    def innerFunction2():
        print('Inner function 2.')

    innerFunction1()
    innerFunction2()

function()

Наименование для функции (), Innerfunction1 () и Innerfunction2 () предназначено только для понимания. Вы можете использовать свои собственные имена функций, основанные на требовании.

Выход

Inside function.
Inner function 1.
Inner function 2.

В приведенной выше программе у нас есть функция (), которая имеет оператор печати, затем две внутренние функции, а именно INNERFunction1 () и Innerfunction2 (), а затем мы назвали эти внутренние функции.

После определения функции () мы назвали функцией с использованием функции ().

Работа внутренних функций

Теперь давайте понять выполнение функции с внутренними функциями. Например, мы приведем вышеуказанную программу.

Мы знаем, что выполнение программы происходит последовательно. Ниже приведен шаг за шагом выполнение вышеуказанной программы.

  1. Определите функцию ().
  2. Функция вызова ().
  3. Выполнить Печать («внутри функции».) Отказ
  4. Определите Innerfunction1 ().
  5. Определите Innerfunction2 ().
  6. Вызов Innerfunction1 ().
  7. Выполнить Печать («Внутренняя функция 1.») Отказ
  8. Вызов Innerfunction1 ().
  9. Выполнить Печать («Внутренняя функция 2.») Отказ

Теперь мы будем наблюдать за объем нашей функции () и внутренних функций.

Функция () определяется в объеме программы. Итак, вы можете получить доступ к функции () в любом месте программы.

Innerfunction1 () определяется внутри функции (). Итак, InnerFunction1 () виден только внутри функции (). Вы не можете позвонить в Innerfunction1 () внешней функции (). Только при вызове функции () определяется Innerfunction1 (). И после выполнения функции (), Innerfunction1 () не более определен. То же объяснение также держится для Innerfunction2 ().

Если вы попытаетесь вызвать любую внутреннюю функцию из-за пределов их объема, NameError поднимается во время вызова функции. Мы продемонстрировали то же самое в следующем примере.

Python Program

def function():
    print('Inside function.')

    def innerFunction1():
        print('Inner function 1.')

    def innerFunction2():
        print('Inner function 2.')

    innerFunction1()
    innerFunction2()

innerFunction1()

Выход

Traceback (most recent call last):
  File "d:/pythonexamplesorg/example.py", line 13, in 
    innerFunction1()
NameError: name 'innerFunction1' is not defined

Резюме

В этом руководстве примеров Python мы узнали, как определить внутреннюю функцию (ы) и их объем в программе Python.