class int_value():
_data=0
@property
def data(self):
return self._data
@data.setter
def data(self,x):
self._data=int(x)
class nonnegative_int_value(int_value):
pass
>>> def data(self,x):
... x=int(x)
... self._data=x if x>0 else 0
...
...
>>> nonnegative_int_value.data=super(nonnegative_int_value,nonnegative_int_value).data.setter(data)
>>>
>>> n=nonnegative_int_value()
>>> n.data=-3.3
>>> n.data
0
>>> n.data=4.5
>>> n.data
4
>>> class nonnegative_int_value(int_value):
... @super(__class__,__class__).data.setter
... def data(self,x):
... x=int(x)
... self._data=x if x>0 else 0
...
...
Traceback (most recent call last):
File "<pyshell#68>", line 1, in <module>
class nonnegative_int_value(int_value):
File "<pyshell#68>", line 2, in nonnegative_int_value
@super(__class__,__class__).data.setter
NameError: name '__class__' is not defined