Gradient
Область видимости переменных. Почему просто было не сделать “снизу вверх”, как в “обычных” языках? Частая глобальная переменная - в каждой функции пиши global. Или передавай её как параметер. Зачем эти сложности на пустом месте?
# -*- coding: utf-8 -*-
a = 5
b = 3
def test():
c = a # a global
b = 7 # b local
print a,b,c
test()
print b
5 7 5
3
не всегда нужно global юзать что-б использовать глобальные переменные