Python 函式的銷毀

2021-10-20 16:26:44 字數 1213 閱讀 3174

全域性函式銷毀

方法一:重新定義同名函式

def foo(a):

return a

print(foo(1),id(foo),foo.__defaults__)

def foo(a):

return a

print(foo(1),id(foo),foo.__defaults__)

結果:1 26875848 none

1 27317784 none

方法二:使用del 【報錯:nameerror: name 'foo' is not defined】

def foo(a):

return a

print(foo(1),id(foo),foo.__defaults__)

def foo(a):

return a

print(foo(1),id(foo),foo.__defaults__)

del foo

print(foo(1),id(foo),foo.__defaults__)

結果:1 25237448 none

1 26400280 none

nameerror: name 'foo' is not defined

全域性函式的銷毀:

區域性函式的銷毀

def foo(xyz=, u='abc', z=123):

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__)

結果:27269064 31905376 ([1], 'abc', 123) (100,)

nameerror: name 'bar' is not defined

區域性函式銷毀

程序的銷毀

並不是所有的程序結束後都會進入exit zombie,如果乙個程序結束的狀態碼 exit signal 是 1,那麼它結束後將會釋放所有占有的資源,並將狀態改為exit dead 當這個程序沒有被其它程序trace的情 況下,如果被其它程序trace,那麼將傳送乙個訊號給trace它的程序 如果乙個...

Python 執行緒之定位與銷毀

背景 開工前我就覺得有什麼不太對勁,感覺要背鍋。這可不,上班第三天就捅鍋了。我們有個了不起的後台程式,可以動態載入模組,並以執行緒方式執行,通過這種形式實現外掛程式的功能。而模組更新時候,後台程式自身不會退出,只會將模組對應的執行緒關閉 更新 再啟動,6 得不行。於是乎我就寫了個模組準備大展身手,結...

函式的呼叫,棧楨的建立及銷毀

下面我們主要從棧的層面深入了解c語言中函式呼叫的過程。下面我用乙個簡單的程式說明 include include int add int x,int y int main 011e1880 pop edi 011e1881 pop esi 011e1882 pop ebx 011e1883 add ...