シングルトン パターンは、一般的に使用されるソフトウェア デザイン パターンです。このパターンの主な目的は、特定のクラスのインスタンスが 1 つだけ存在することを保証することです。シングルトン オブジェクトは、システム全体で特定のクラスのインスタンスを 1 つだけ表示したい場合に便利です。
Python では、さまざまな方法を使用してシングルトン パターンを実装できます (推奨学習: Python ビデオ チュートリアル )
実際、Python のモジュールは自然なシングルトン モードです。モジュールが初めてインポートされるとき、.pyc ファイルが生成されます。2 回目にインポートされるとき、.pyc ファイルはモジュールコードが再度実行されるのではなく、直接ロードされます。したがって、シングルトン オブジェクトを取得するには、モジュール内で関連する関数とデータを定義するだけで済みます。
デコレータを使用する
def Singleton(cls): _instance = {} def _singleton(*args, **kargs): if cls not in _instance: _instance[cls] = cls(*args, **kargs) return _instance[cls] return _singleton @Singleton class A(object): a = 1 def __init__(self, x=0): self.x = x a1 = A(2) a2 = A(3)
クラスを使用する シングルトンを実装する場合、スレッドの安全性を確保するために必要な内部ロックへの追加
オブジェクトをインスタンス化するとき、最初にクラスの __new__ メソッドを実行して (メソッドを記述しない場合は、デフォルトで object.__new__ が呼び出されます)、 object; 次に、クラスの __init__ メソッドを実行してオブジェクトを初期化します。これに基づいて、シングルトン モードを実装できます。
Use __metaclass__ (メタクラス)
Python 関連の技術記事の詳細については、Python チュートリアル 列にアクセスして学習してください。
以上がPythonでシングルトンを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。