Como a instrução print cria variáveis locais
As perguntas estão no final deste post.
Primeiro trecho: dicionário de variáveis locais vazio.
def outer():
x = 1
def inner():
print "Local variables: %s" % locals()
return inner()
print outer()
Saída: variáveis locais: {}
Segundo trecho: imprima dentro da função inner () e criando entrada de variável local.
def outer():
x = 1
def inner():
print x
print "Local variables: %s" % locals()
return inner()
print outer()
Resultado:
1
Local variables: {'x': 1}
Terceiro trecho: del x de dentro da função interna:
def outer():
x = 1
def inner():
print x
print "Local variables: %s" % locals()
del x
return inner()
print outer()
Resultado:
>>> outer()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 7, in outer
File "<stdin>", line 4, in inner
UnboundLocalError: local variable 'x' referenced before assignment
>>>
Questões :
No Segundo trecho, como a instrução print cria a variável local.Se ele cria uma variável local dentro da função interna, por que não consigo excluí-la.Alguém poderia me ajudar a entender isso.