问题在这篇文章的末尾。
第一个片段:空的局部变量字典。
def outer():
x = 1
def inner():
print "Local variables: %s" % locals()
return inner()
print outer()
输出:局部变量:{}
第二个片段:在 inner() 函数内打印并创建局部变量条目。
def outer():
x = 1
def inner():
print x
print "Local variables: %s" % locals()
return inner()
print outer()
输出:
1
Local variables: {'x': 1}
第三个片段:内部函数内部的 del x:
def outer():
x = 1
def inner():
print x
print "Local variables: %s" % locals()
del x
return inner()
print outer()
输出:
>>> 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
>>>
问题 :
- 在第二个片段中,打印语句如何创建局部变量。
- 如果它在内部函数中创建局部变量,为什么我无法删除它。
有人可以帮我理解这一点。