Почему этот код работает:
var = 0
def func(num):
    print num
    var = 1
    if num != 0:
        func(num-1)
func(10)
но это дает "локальную переменную" var ", указанную перед присваиванием" error:
var = 0
def func(num):
    print num
    var = var
    if num != 0:
        func(num-1)
func(10)