python中,有时候为了提升程序执行效率,我们会通过del语句及时的删除对,清出内存。但是在使用del语句时,有一个需要注意的点就是:del语句会默认的将变量声明为本地变量。
因此下面的代码运行起来就会报错:UnlocalBoundError。因为下面的代码中,函数f中的del语句已经将变量s声明为本地变量,这样就会导致变量s在本地中没有被赋值就被引用了,从而会报错。
s='a'
def f():
print(s)
del s
f()
对此,正确的做法是,可以在f中先将s声明为全局变量,这样del语句中的s就是全局变量了,就不会被声明为本地变量。如下代码所示。
s='a'
def f():
global s
print(s)
del s
f()