ホームページ  >  記事  >  バックエンド開発  >  [Python] Python クラスのパブリック プロパティを実装する

[Python] Python クラスのパブリック プロパティを実装する

高洛峰
高洛峰オリジナル
2017-02-16 11:30:441444ブラウズ

背景

今日、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 サイトの関連記事に注目してください。

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