J'ai une classe A
faite par quelqu'un d'autre, que je ne peux pas modifier:Python remplaçant setter à un attribut sans setter?
class A:
def __init__(self, x):
self.x = x
Maintenant, je suis en train d'hériter ma propre classe B
de A
, et ont x
comme une propriété au lieu d'un attribut. Est-ce possible?
J'ai déjà essayé:
class B(A):
def __init__(self, x):
super().__init__(x)
@property
def x(self):
return super().x
@x.setter
def x(self, x):
super().x = x
print(x) # my stuff goes here
Mais comme je m'y attendais, il est impossible: AttributeError: 'super' object has no attribute 'x'
est-il une autre méthode, certains workaroud peut-être?
Merci pour la réponse, je vais accepter dès que possible. :) Peut-être un peu "hacky" façon (bien, au moins, semble un peu hacky pour accéder à '__dict__'), mais semble fonctionner tout simplement génial –