Thanks for answer, Attribute accessing inside the class is implemented by getters and setters: "min_set", "min_get", "max_set" and "max_get". You can put your logic to this functions and parameter "prop" is the direct reference to this property. I can create a "really read-only attribute", and other developers which use my class can't affect this attribute, they can only using getters and setters written inside the class. I realize that attribute changes can be just in getters and setters, but this restriction it's insignificant.
In case with using __setattr__: you always can access an attribute by __dict__ and implementation of this method also use __dict__, but in case with "hidden property" you can rich the reference to property inside the class (it is parapeter "prop") and outside the class you cannot. I didn't want to affirm that this way is like C# or Java encapsulation, but I think the fact that physical reference to attribute hides is really interesting and is the way to do encapsulating like in C# or similar others. *I have been locking for encapsulating in Python because all say that is no way to "really" hide attributes. I think I disproved this. -- http://mail.python.org/mailman/listinfo/python-list