On 2/18/2009 6:15 PM Gabriel Genellina apparently wrote:
type(a).x
OK, that's good. I'd like to sometimes lock attribute creation on instances of a class but still allow properties to function correctly. Will something like below be satisfactory? Thanks, Alan def __setattr__(self, attr, val): """If instance locked, allow no new attributes.""" try: #get the class attribute if it exists p = getattr(type(self),attr) #if it's a descriptor, use it to set val p.__set__(self, val) except AttributeError: #no descriptor if hasattr(self, attr): #update val self.__dict__[attr] = val elif getattr(self, '_attrlock', False): raise AttributeError( "Set _attrlock to False to add attributes.") else: #new attributes allowed self.__dict__[attr] = val -- http://mail.python.org/mailman/listinfo/python-list