函数的销毁
全局函数:
def foo(xyz = [], u = 'abc', z = 123):
xyz.append(1)
return xyz
print(foo(), id(foo), foo.__defaults__)
def foo(xyz = [], u = 'abc', z = 123):
xyz.append(1)
return xyz
print(foo(), id(foo), foo.__defaults__)
del foo
print(foo(), id(foo), foo.__defaults__)
全局函数销毁:
1.重新定义同名函数;
2.del语句删除函数对象;
3.程序结束时;
局部函数:
def foo(xyz = [], u = 'abc', z = 123):
xyz.append(1)
def inner(a = 10):
pass
print(inner)
def inner(a = 100):
print(xyz)
print(inner)
return inner
bar = foo()
print(id(foo), id(bar), foo.__defaults__, bar.__defaults__)
del bar
print(id(foo), id(bar), foo.__defaults__, bar.__defaults__)
局部函数的销毁:
1.重新在上级作用域定义同名函数;
2.del语句删除函数对象;
3.上级作用域销毁时;
转载于:https://blog.51cto.com/limingyu/2175939