单例是一种设计模式,可确保只创建类的单个实例。以下是在 Python 中实现单例的建议:
使用元类
此方法有几个优点:
class Singleton(type): _instances = {} def __call__(cls, *args, **kwargs): if cls not in cls._instances: cls._instances[cls] = super(Singleton, cls).__call__(*args, **kwargs) return cls._instances[cls] class Logger(object): __metaclass__ = Singleton
对其他方法的更正
在原来的帖子中,基类实现是不正确的。它需要使用 super() 引用类上的 _instances,并将 new 更正为以类作为参数的静态方法。
何时使用单身人士
虽然对于单身人士的可取性存在争议,但单身人士适用于某些情况:
在所呈现的场景中,日志记录是用例,单例模式是合适的选择。
以上是如何在 Python 中实现单例模式用于日志记录?的详细内容。更多信息请关注PHP中文网其他相关文章!