python 函数销毁

Posted 栗子测试

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 函数销毁相关的知识,希望对你有一定的参考价值。


# 函数销毁
# 全局函数销毁
# 重新定义同名函数
# del语句删除函数对象
# 程序结束时
def foo(xyz=[], u=‘abc‘, z=123):
xyz.append(1)
return xyz
print(id(foo))

def foo(xyz=[]):
xyz.append(1)
return xyz
print(id(foo)) # foo函数id变化,上一个foo函数等待垃圾回收

del foo
print(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 inner

bar = foo()
print(id(foo), id(bar), foo.__defaults__, bar.__defaults__)
del bar
print(id(foo), id(bar), foo.__defaults__, bar.__defaults__)







































以上是关于python 函数销毁的主要内容,如果未能解决你的问题,请参考以下文章

python中用销毁函数__del__退出浏览器出错

python练习之析构函数(进阶)

为啥 Python 在对象之前销毁类变量?

Python析构函数

Python作用域

(十五)名称空间与作用域