今日、Python クラスにはパブリック属性と同様の特性があるかどうかを尋ねている人を見かけました。つまり、特定のインスタンスの対応する属性が変更されると、そのクラスのすべてのインスタンスの対応する属性もそれに応じて変更されます。それを、補助的なシングルトンパターンクラスを使用して問題を解決しました。
1 つのインスタンスを変更すると、それに応じて他のインスタンスも変更されます。これはシングルトン モードの特徴のように聞こえますが、対象となるのは 1 つの属性のみであるため、補助クラスを借用できます。
class Attr(): attr = {} def __init__(self): self.__dict__ = self.attr class Myclass(): def __init__(self): self.attr = Attr() @property def value(self): return self.attr.value @value.setter def value(self, value): self.attr.value = value
In [47]: a = Myclass() In [48]: b = Myclass() In [49]: a.value = 1 In [50]: b.value Out[50]: 1 In [51]: b.value = 2 In [52]: a.value, b.value Out[52]: (2, 2)
デザインパターンとその組み合わせを使用します。
Python クラスのパブリック属性の [Python] 実装の詳細については、PHP 中国語 Web サイトの関連記事に注目してください。