Типични грешки · Информационни технологии / Програмиране

Обхват на променливите — локална срещу глобална

Обхватът (scope) на една променлива определя къде в програмата тя „съществува“ и може да бъде използвана. Локална променлива, дефинирана вътре във функция, не съществува извън нея — честа грешка е очакването тя да е достъпна навсякъде в програмата.

Така е грешно

def smetni(): rezultat = 5 + 3 smetni() print(rezultat) # грешка — rezultat не съществува тук

Така е вярно

def smetni(): rezultat = 5 + 3 return rezultat x = smetni() print(x) # правилно — стойността се връща и записва в глобална променлива x

Защо се допуска

Учениците смятат, че всяка създадена в програмата променлива автоматично е видима навсякъде, без да отчитат, че функциите създават свое собствено, затворено пространство от имена.

Как да я избегнеш

Ако стойност, изчислена вътре във функция, е нужна извън нея, тя трябва изрично да бъде върната с `return` и записана в променлива извън функцията.

Провери се

Кратко упражнение точно по тази грешка.

1 / 30 верни

Къде „живее“ локална променлива, дефинирана вътре във функция?

Пробвай на цял тест

Направи пробния тест по формата на изпита и виж дали грешката вече не те спъва.

Към теста