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

高洛峰
リリース: 2017-02-16 11:30:44
オリジナル
1486 人が閲覧しました

背景

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

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート