函数的销毁

  全局函数:

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.上级作用域销毁时;