Maison > développement back-end > Tutoriel Python > [Python] Implémenter les propriétés publiques des classes Python

[Python] Implémenter les propriétés publiques des classes Python

高洛峰
Libérer: 2017-02-16 11:30:44
original
1517 Les gens l'ont consulté

Contexte

Aujourd'hui, j'ai vu quelqu'un demander si les classes Python ont des caractéristiques similaires aux attributs publics, c'est-à-dire que si les attributs correspondants d'une certaine instance sont modifiés, les attributs correspondants de toutes les instances de la classe le seront. modifié en conséquence. Je pensais avoir pensé à utiliser une classe auxiliaire en mode singleton pour résoudre le problème.

Idée

Modifiez une instance et l'autre instance sera également modifiée. Cela ressemble aux caractéristiques du mode singleton, mais cela ne cible qu'un seul attribut, vous pouvez donc emprunter une classe auxiliaire.

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
Copier après la connexion

Démonstration

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)
Copier après la connexion

Impressions

Utilisez des modèles de conception et leurs combinaisons.

Pour plus d'implémentations [Python] des attributs publics des classes Python, veuillez faire attention au site Web PHP chinois pour les articles connexes !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal