Поясните мне логику питона. Функция x1() выводит 1, а x2() вообще падает с ошибкой reference before assigment. Получается что я из вложенной функции имею только доступ на чтение к переменным «родительской» функции?
def x1():
def y():
z = 3
z = 1
y()
print z
def x2():
def y():
print z
z = 3
z = 1
y()
print z
x1()
x2()