I\'m changing some classes of mine from an extensive use of getters and setters to a more pythonic use of properties.
But now I\'m stuck because some of my previous
You can use the following template:
class Parent():
def __init__(self, value):
self.__prop1 = value
#getter
@property
def prop1(self):
return self.__prop1
#setter
@prop1.setter
def prop1(self, value):
self.__prop1 = value
#deleter
@prop1.deleter
def prop1(self):
del self.__prop1
class Child(Parent):
#getter
@property
def prop1(self):
return super(Child, Child).prop1.__get__(self)
#setter
@prop1.setter
def prop1(self, value):
super(Child, Child).prop1.__set__(self, value)
#deleter
@prop1.deleter
def prop1(self):
super(Child, Child).prop1.__delete__(self)
Note! All of the property methods must be redefined together. If do not want to redefine all methods, use the following template instead:
class Parent():
def __init__(self, value):
self.__prop1 = value
#getter
@property
def prop1(self):
return self.__prop1
#setter
@prop1.setter
def prop1(self, value):
self.__prop1 = value
#deleter
@prop1.deleter
def prop1(self):
del self.__prop1
class Child(Parent):
#getter
@Parent.prop1.getter
def prop1(self):
return super(Child, Child).prop1.__get__(self)
#setter
@Parent.prop1.setter
def prop1(self, value):
super(Child, Child).prop1.__set__(self, value)
#deleter
@Parent.prop1.deleter
def prop1(self):
super(Child, Child).prop1.__delete__(self)