我是靠谱客的博主 孝顺黄蜂,最近开发中收集的这篇文章主要介绍刚学python写了一个类,为何__del__ : 析构函数,释放对象时没有运行,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

先说一下不运行的情况:

class Cat(object):
    def __init__(self):
        # self.name = newname
        print("1")
        # print(self.name)

    def say(self):
        print("hi")

    def __del__(self):

        # print("%s gol"%self.name)
        print("123")


tom = Cat()
# del tom
tom.say()
1
hi

按理来说__del__应该最后自动执行的,可是并没有,如果手动加上也可以执行,但是失去了我使用它的本意。在一些讲解的视频中他们就可以运行,我不知道他们怎么搞得,可能是python解释器版本不同吧,我后来查了查,有的说下面加个函数,就像这样:

class Cat(object):
    def __init__(self):
        # self.name = newname
        print("1")
        # print(self.name)

    def say(self):
        print("hi")

    def __del__(self):

        # print("%s gol"%self.name)
        print("123")


# tom = Cat()
# del tom
# tom.say()
# del tom
def func():
    cat1=Cat()
    cat1.say()
func()
1
hi
123

我们就加了一个func函数,这样就可以了,可能这才是析构函数想让我们使用的方法吧。
可恶,最近我又回来看了看当初的代码,那个123可以出来了,吐血,当初明明不行的。现在我也有了进一步的理解,这个__del__析构函数是来回收内存的,按道理来说是程序最后运行的,就是在你程序执行完的时候会加上这一步

最后

以上就是孝顺黄蜂为你收集整理的刚学python写了一个类,为何__del__ : 析构函数,释放对象时没有运行的全部内容,希望文章能够帮你解决刚学python写了一个类,为何__del__ : 析构函数,释放对象时没有运行所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部