析构函数是构造函数的反向函数,在销毁(释放)对象时将调用它们。析构函数往往用来做“清理善后”的工作,例如数据库链接对象可以在析构函数中释放对数据库资源的占用。Python中为类定义析构函数的方法是在类中定义一个名为de!的没有返回值和参数的函数。
与Java类似,Python解释器的堆中储存着正在运行的应用程序所建立的所有对象,但是它们不需要程序代码来显式地释放,因为Python解释器会自动跟踪它们的引用计数,并自动销毁(同时调用析构函数)已经没有被任何变量引用的对象。在这种场景中,开发者并不知道对象的析构函数何时会被调用。同时,Python提供了显式销毁对象的方法:使用del关键字。

实例:

# 定义一个类
class MyClass(object):
    message = "Hello, Python!"  # 成员变量message

    def __init__(self, name="Java", result="hello world!"):
        print("这是一个%s构造函数!我想让它输出:%s" % (name, result))

    def __del__(self):
        print("这是一个析构函数!")

    # 定义成员函数
    def show(self):
        print(self.message)


def main():
    inst01 = MyClass("Python")  # 实例化一个对象,传入1个参数
    inst01.show()  # 使用实例化的对象调用成员函数
    inst02 = MyClass("Python", "hello Python!")  # 实例化一个对象,传入2个参数
    inst02.show()
    inst03 = MyClass(result="hello Python!", name="Python")  # 实例化一个对象,传入指定参数
    inst03.show()

    del inst02


if __name__ == '__main__':
    main()

以上代码输出结果为:

这是一个Python构造函数!我想让它输出:hello world!
Hello, Python!
这是一个Python构造函数!我想让它输出:hello Python!
Hello, Python!
这是一个Python构造函数!我想让它输出:hello Python!
Hello, Python!
这是一个析构函数!
这是一个析构函数!
这是一个析构函数!
0条评论

相关推荐

Python函数

在编程中使用函数可以写出优雅的程序结构,模块化的结构使程序简单化,并提高了...

入门教程 2019-05-20 15:12:29

Python综述

Python是一种可以撰写跨平台应用程序的面向对象程序设计语言,它具有卓越...

入门教程 2019-05-21 09:33:16

Python异常

异常处理是编程语言中的一种机制,用于处理软件或信息系统中出现的异常状况(即...

入门教程 2019-05-20 17:20:26

Python基本数据类型

顾名思义,计算机就是用来处理各种各样的数据的机器,这些数据可能包括:数字,...

入门教程 2019-05-17 14:51:54

流程控制

流程控制语句用来实现对程序流程的选择、循环和返回等进行控制。Python中...

入门教程 2019-05-20 11:17:04