python 函數銷燬

# 函數銷燬# 全局函數銷燬#   從新定義同名函數#   del語句刪除函數對象#   程序結束時def foo(xyz=[], u='abc', z=123):    xyz.append(1)    return xyzprint(id(foo))def foo(xyz=[]):    xyz.append(1)    return xyzprint(id(foo))        # foo函數id變化,上一個foo函數等待垃圾回收del fooprint(id(foo))# 局部函數銷燬#   從新在上級做用域定義同名函數#   del語句刪除函數對象#   上級做用域銷燬時def foo(xyz=[], u='abc', z=123):    xyz.append(1)    def inner(a=10):        pass    print(id(inner))    def inner(a=100):        print(xyz)    print(id(inner))    return innerbar = foo()print(id(foo), id(bar), foo.__defaults__, bar.__defaults__)del barprint(id(foo), id(bar), foo.__defaults__, bar.__defaults__)
相關文章
相關標籤/搜索