Программада функциялар қабаттасып келе береді. Бұған мысал.
def main(): # main функциясын анықтау
print('Мен Сізге мынаны айтайын деп едім.') message() # message функциясын шақырып орындау print('Қош болыңыз!') def message(): # message функциясын анықтау print('Мен - студентпін,') print('болашақта маман болып шығамын.' )
main() # main функциясын шақырып орындау
ды. Егер бір функциядағы код екінші бір функциядағы айнымалыны пайдаланатын болса,
қате туындайды. Мысал қарастырайық.
def main () : # Басты функцияны анықтау
get_name ()
рrint('Сәлем, ', name)
def get name():
# Бұл қате туындатады
# get_name функциясын анықтау
name = input ( 'Атыңыз кім: ' )
main() # Басты функцияны шақыру
Бұл программада екі функция: main және get_name бар.
5-жолда name айнымалысына ат енгізіледі. Бұл оператор
get_name функциясында, сондықтан ол name бұл функция үшін локальді болып табылады. Осыған орай name айнымалысын get_name функциясынан тыс орналасқан оператор қол- дана алмайды.
main функциясы 3-жолда get_name функциясын шақырады. Сонан кейін 4-жолдағы
оператор name айнымалысын қолдануға тырысады. Мұндай әрекет қате туындатады, себебі name айнымалысы get_name функциясы үшін локальді болып табылады.
Нәтижесі:
Атыңыз кім: Азат
Traceback (most recent call last):
File "C:/Users/.../funct.py", line 6, in main () # Басты функцияны шақыру.
File "C:/Users/.../funct.py", line 3, in main
рrint('Сәлем, ', name) # Бұл қате туындатады
NameError: name 'рrint' is not defined