單例是一種設計模式,可確保只建立類別的單一實例。以下是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中文網其他相關文章!