Maison >développement back-end >Tutoriel Python >[Python] Implémenter les propriétés publiques des classes Python
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.
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.
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)
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 !