我有几个类通过另一个类相互通信(类似于中介模式)。
每个类在创建和销毁时都会打印一条消息:
当我创建 Mediator 对象时,Mediator 保存对所有其他对象的引用,并且所有对象都保存对 Mediator 的引用。
此后,程序完成时不会调用对象的析构函数:
这是为什么呢?这是内存泄漏吗?
最佳答案
在您的情况下,应用程序正在退出,因此操作系统分配给 python 进程的所有内存将在终止后被释放。
至于为什么没有打印语句,当程序退出时它会销毁对象,我假设您正在使用 __del__ 方法来打印消息,并且正如Python文档所述,不保证会调用这些方法在程序退出时,Link here
object.__del__(self):
... It is not guaranteed that __del__() methods are called for objects that still exist when the interpreter exits.
关于Python 中介模式内存泄漏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33847300/