Как написано, обе функции определены, но ни одна из функций не вызывается.
Если вы вызовете Function_A
до определения Function_B
, вы получите ошибку:
def Function_A():
print "We're going to function B!"
Function_B()
Function_A() # will fail
def Function_B():
print "We made it!"
Если вы позвоните Function_A
после определения Function_B
все будет работать нормально:
def Function_A():
print "We're going to function B!"
Function_B()
def Function_B():
print "We made it!"
Function_A() # will succeed
Интерпретатор выполняет файл с началадо конца, определяя и вызывая функции по мере их появления.Тела функций будут внимательно рассматриваться только при вызове функции.
При выполнении Function_A
и достижении его второй строки интерпретатор будет искать в глобальном пространстве имен что-то, называемое Function_B
.В первом примере еще ничего не определено, а во втором примере можно вызвать Function_B
.