ホームページ  >  記事  >  バックエンド開発  >  Pythonでシングルトンを実装する方法

Pythonでシングルトンを実装する方法

(*-*)浩
(*-*)浩オリジナル
2019-06-27 09:28:513329ブラウズ

シングルトン パターンは、一般的に使用されるソフトウェア デザイン パターンです。このパターンの主な目的は、特定のクラスのインスタンスが 1 つだけ存在することを保証することです。シングルトン オブジェクトは、システム全体で特定のクラスのインスタンスを 1 つだけ表示したい場合に便利です。

Pythonでシングルトンを実装する方法

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。