Как вызвать функцию, находящуюся в другой функции?
Какое то время, у меня была проблема, YouTube Guides оп питону не помогали. Суть вопроса:
Как вызвать функцию, находящуюся в другой функции?
Добавлю код для более простого понимания:
def function1(): #Первая функция
print("Hello World!")
def function2(): #Функция которую нужно вызвать из первой функции.
print("World is answer: Hello!")
Я задал этот вопрос, не просто так. Я заметил, что ни на форумах, не на GitHab-е, даже здесь, на ruSO, нету ясного, и понятного ответа, как так сделать.
Я много чего пробовал, пытаясь даже костылями вызвать(Код кривой, в силу что был написан очень давно, когда только познал базовые знания питона):
def func1():
prit("Hello world!")
def func2():
print("Call func from funck is successfully!")
func(fucn2())
Вот неясно, как и что, ведь выдаёт ошибку:
D:\Terminalius\TermNet\$cash>func2.py
Traceback (most recent call last):
File "D:\Terminalius\TermNet\$cash\func2.py", line 6, in <module>
func(fucn2())
NameError: name 'func' is not defined
Что бы вы не подумали что код неправильный, вот скриншот из редактора:

Ответы (3 шт):
Вам срочно надо освоить ООП. Ну, а попробовать можно так:
def func1(flag=0):
def func2():
print("Call func from funck is successfully!")
if flag:
print("Hello world!")
else:
func2()
func1()
func1(1)
Это возможно только если в явном виде вернуть указатель на внутреннюю функцию из внешней функции. На подобном принципе, кстати, работают декораторы:
def function1(): #Первая функция
print("Hello World!")
def function2(): #Функция которую нужно вызвать из первой функции.
print("World is answer: Hello!")
return function2
function1() # вызываем внешнюю функцию, возврат игнорируем
function1()() # вызываем внешнюю функцию, возврат вызываем как функцию
Вывод:
Hello World!
Hello World!
World is answer: Hello!
Функцию в функции тоже нужно вызвать.
def function1(): #Первая функция
print("Hello World!")
def function2(): #Функция которую нужно вызвать из первой функции.
print("World is answer: Hello!")
function2()
function1()
Вывод:
Hello World!
World is answer: Hello!