Я понимаю концепцию локальных и глобальных переменных в Python, но у меня просто возникает вопрос, почему ошибка возникает так, как она есть в следующем коде. Python выполняет коды по строкам, поэтому он не знает, что a - это локальная переменная, пока не будет прочитана строка 5. Остается ли Python вернуться к одной строке и пометить ее как ошибку после попытки выполнить строку 5?
a=0
def test():
print a #line 4, Error : local variable 'a' referenced before assignment
a=0 #line 5
test()