del in Python函数在行之前删除变量?

时间:2017-10-22 21:54:14

标签: python python-3.x

请考虑以下代码:

foo=None
def bar():
    print(foo, flush=True) # UnboundLocalError
    print('MARK')
    del foo

print(foo)
bar()
#print(foo)

基本上我有一个调用del的函数。但是,当我运行该程序时,我UnboundLocalError获得了'foo' referenced before assignment。如果我注释掉del行,则异常消失。我想应该在它所在的行上准确调用del,这样变量才会在此之后失效。但事实似乎并非如此。

这是预期的行为吗? (具体来说,我使用的是Python 3.6.2)

0 个答案:

没有答案