请考虑以下代码:
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)