Heim  >  Artikel  >  Backend-Entwicklung  >  [Python] Implementieren Sie öffentliche Eigenschaften von Python-Klassen

[Python] Implementieren Sie öffentliche Eigenschaften von Python-Klassen

高洛峰
高洛峰Original
2017-02-16 11:30:441480Durchsuche

Hintergrund

Heute habe ich jemanden gefragt, ob Python-Klassen ähnliche Eigenschaften wie öffentliche Attribute haben. Das heißt, wenn die entsprechenden Attribute einer bestimmten Instanz geändert werden, werden die entsprechenden Attribute aller Instanzen der Klasse geändert entsprechend geändert. Ich dachte, ich hätte darüber nachgedacht, eine zusätzliche Singleton-Modus-Klasse zu verwenden, um das Problem zu lösen.

Idee

Ändern Sie eine Instanz, und die andere Instanz wird ebenfalls geändert. Es klingt wie die Merkmale des Singleton-Modus, zielt jedoch nur auf ein Attribut ab, sodass Sie eine Hilfsklasse ausleihen können.

Code

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

Demonstration

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)

Eindrücke

Verwenden Sie Designmuster und deren Kombinationen.

Weitere [Python]-Implementierungen öffentlicher Attribute von Python-Klassen finden Sie auf der chinesischen PHP-Website für verwandte Artikel!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Python-GrundlagenNächster Artikel:Python-Grundlagen