首页 > 解决方案 > 如何从内存中清除单例对象?

问题描述

我看到有很多示例如何使用 python 创建单例对象。

有没有一种简单、优雅的方式来定义单例?

我想在 FastAPI 脚本中使用单例,我担心一旦我的脚本完成,单例项可能不会从内存中清除。

例如,我在这个例子中看到的

def singleton(cls):
    instances = {}
    def getinstance():
        if cls not in instances:
            instances[cls] = cls()
        return instances[cls]
    return getinstance

@singleton
class MyClass:
    ...

该实例在装饰器中进行管理。当我完成所有逻辑时,如何告诉装饰器释放该内存块?很久以前,我在使用 Java 时遇到过类似的问题,并且在这里大声思考。我想做的就是instances = {}

标签: pythonsingleton

解决方案


推荐阅读