Python 中用于单元测试的单例析构函数

Singleton destructor for unit testing in Python

我需要在 Python (2.7) 中实现单例模式并用单元测试覆盖代码。

下面是我使用的代码:

class Singleton(object):
    def __new__(cls):
        if not hasattr(cls, 'instance'):
             cls.instance = super(Singleton, cls).__new__(cls)
        return cls.instance

为了使单元测试独立,我需要为此实现一个析构函数class。如何做到这一点?

您可以只删除 instance 属性:

del Singleton.instance

如果你是子class这个,你可以把它变成一个class方法:

@classmethod
def clear_instance(cls):
    del cls.instance