Python 中介模式内存泄漏?

标签 python design-patterns mediator

我有几个类通过另一个类相互通信(类似于中介模式)。

每个类在创建和销毁时都会打印一条消息:

enter image description here

当我创建 Mediator 对象时,Mediator 保存对所有其他对象的引用,并且所有对象都保存对 Mediator 的引用。

此后,程序完成时不会调用对象的析构函数:

enter image description here

这是为什么呢?这是内存泄漏吗?

最佳答案

在您的情况下,应用程序正在退出,因此操作系统分配给 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/

相关文章:

java - OOP 中的字符串 Switch 实现替代方案

python - 迭代两个文件,按行比较匹配的字符串,合并匹配的行

python - 返回自身的自定义 OrderedDict

swift - 在 Swift 中编写 Kotlin 的 by-clause(又名类委托(delegate))的正确方法是什么?

c# - 如何使用断路器?

c# - LightInject 不解析继承的泛型类型

python - WSO2 Python 脚本中介器

php - 实现 mediator.js 时的命名空间问题

java - 如何使用 Java native 接口(interface)在 C++ 中导入 python 库 - Android Studio

python - datetime.date + datetime.timedelta = datetime.date 什么意思