函數的銷燬python
全局函數:app
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__)
全局函數銷燬:
ide
1.從新定義同名函數;函數
2.del語句刪除函數對象;對象
3.程序結束時;作用域
局部函數:
it
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__)
局部函數的銷燬:
class
1.從新在上級做用域定義同名函數;程序
2.del語句刪除函數對象;di
3.上級做用域銷燬時;