class Age: def __init__(self, years=None): if years is None: self.years=0 else: self.years=years
def __setattr__(self, key, value): if key == "years": if value < 0: print "ERROR-Years cannot be less than zero, setting to zero" self.years=0 return self.__dict__[key]=value return if __name__=="__main__": a=Age() # # Following will print zero because it is the default # print a.years # # Try to set negative # a.years=-1 # # Other attributes work just fine # a.yyy=10 Larry Bates Steve wrote: > Hi, > > Read this: > http://www.python.org/2.2.3/descrintro.html#property > > If you still don't understand or are confused about it's usage, ask here. > > Hint: Suppose you need to create an Age class with a 'years' attribute > and ensure that, (assuming I create an object a = Age()) > 1) when one tries to access 'a.years', a '0' would be returned even if > the value was not set or was set to a negative value, and > > 2) If a value is assigned to the 'years' attribute, we should check > for negative values. > > HTH > Regards > Steve -- http://mail.python.org/mailman/listinfo/python-list