By the way, I know that I can use a "property virtualizer", something
like this:
import inspect
class A:
def __init__(self, prop=0):
self.__prop = prop
def _prop_get(self):
return self.__prop
def _prop_set(self, value):
self.prop_set(value)
def prop_set(self, value):
print("Setting prop value in A to", value)
self.__prop = value
prop = property(_prop_get, _prop_set)
class B(A):
def prop_set(self, value):
print("Setting prop value in B to", value)
super().prop_set(value)
class C(A):
def prop_set(self, value):
print("Setting prop value in C to", value)
super().prop_set(value)
class D(B,C):
pass
d = D(0)
d.prop=10
But this solution almost defeats the purpose of properties. E.g. a
property should look like an attribute, and its behaviour should be
manipulated through its name (and not another special method that must
be exposed to subclasses.)
--
https://mail.python.org/mailman/listinfo/python-list