go语言中有 defer
import "fmt"
func myfunc() {
fmt.Println("B")
}
func main() {
defer myfunc()
fmt.Println("A")
}
python 使用 上下文管理器实现同样的效果
import contextlib
def func_D(k,v):
print(f"{k}:{v}")
def func_C():
print('C')
def func_B():
print("B")
with contextlib.ExitStack() as stack:
stack.callback(func_D,"name","王小二")
stack.callback(func_C)
stack.callback(func_B)
print('A')