Автор оригинала: 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 (), а затем мы назвали эти внутренние функции.
После определения функции () мы назвали функцией с использованием функции ().
Работа внутренних функций
Теперь давайте понять выполнение функции с внутренними функциями. Например, мы приведем вышеуказанную программу.
Мы знаем, что выполнение программы происходит последовательно. Ниже приведен шаг за шагом выполнение вышеуказанной программы.
- Определите функцию ().
- Функция вызова ().
- Выполнить
Печать («внутри функции».)
Отказ - Определите Innerfunction1 ().
- Определите Innerfunction2 ().
- Вызов Innerfunction1 ().
- Выполнить
Печать («Внутренняя функция 1.»)
Отказ - Вызов Innerfunction1 ().
- Выполнить
Печать («Внутренняя функция 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, ininnerFunction1() NameError: name 'innerFunction1' is not defined
Резюме
В этом руководстве примеров Python мы узнали, как определить внутреннюю функцию (ы) и их объем в программе Python.