Python でシングルトンのクラス属性を使用する場合
単一の必須インスタンスを持つ Python クラスを作成する場合、適切な属性戦略を選択することが重要です。クラス属性とインスタンス属性には、どちらも固有の長所と短所があります。
クラス属性:
クラス属性はクラス自体に直接割り当てられ、すべてのインスタンス間で共有されます。このアプローチは、クラスのすべてのインスタンスが同一の属性を必要とする場合に適しています。例:
class MyController(Controller): path = "something/" children = [AController, BController]
インスタンス属性:
インスタンス属性は、クラスの特定のインスタンスに関連付けられ、そのインスタンスに固有です。これらは __init__() メソッドで動的に作成されます。このアプローチは、各インスタンスの属性に一意の値が必要な場合に必要です。例:
class MyController(Controller): def __init__(self): self.path = "something/" self.children = [AController, BController]
シングルトンのアプローチはどれですか?
クラスの必須インスタンスは 1 つだけであるため、インスタンス属性を使用することをお勧めします。このシナリオでは です。その理由は次のとおりです。
したがって共有構成を持つ単一のインスタンスを必要とする Python クラスの場合、属性をインスタンス変数として定義する方がより慣用的で有益です。
以上がPython シングルトンにはクラス属性とインスタンス属性のどちらを使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。