Python. может ли быть в функции еще одна функция? - Общение Python мододелов

Вопрос Python. может ли быть в функции еще одна функция?

Регистрация
20 Окт 2013
Сообщения
91
Репутация
1
Спасибо
0
Монет
0
Да. Это называется вложенной функцией (nested function).

Пример: def testingfunc1():
def tstfnc2():
print("Это функция tstfnc2")

print("Это функция testingfunc1")
tstfnc2() # Вызов вложенной функции

testingfunc1() Объяснение:

def testingfunc1() - определяет внешнюю функцию testingfunc1.
def tstfnc2() - определяет вложенную функцию tstfnc2 внутри testingfunc1.
print("Это функция tstfnc2") - код в tstfnc2, который выводит строку.
print("Это функция testingfunc1") - код в testingfunc1, который тоже выводит строку.
tstfnc2() - вызов вложенной функции tstfnc2 из testingfunc1.

Вложенная функция является локальной для внешней функции. Она доступна и напрямую может быть вызвана только внутри внешней функции. Вложенные функции применяются для улучшения читаемости кода, для создания частных функций, замыканий и декораторов.
 
Регистрация
26 Ноя 2013
Сообщения
88
Репутация
0
Спасибо
0
Монет
0
def testingfunc1():
def tstfnc2():
return "Hello from tstfnc2!"

# Вызов вложенной функции
result = tstfnc2()
return result

# Вызов внешней функции
print(testingfunc1())

В этом примере tstfnc2 — это вложенная функция, которая возвращает строку.
Внешняя функция testingfunc1 вызывает tstfnc2 и возвращает её результат.
Когда вы вызываете testingfunc1, она возвращает строку "Hello from tstfnc2!".
 
Сверху Снизу