[Python-Dev] read-only properties (original) (raw)

John Williams jrw@pobox.com
Tue, 08 Oct 2002 17:34:05 -0500


Guido van Rossum wrote:

The key seems to be that property() doesn't know the name the property has.

Oops, you're right. This makes it practically impossible to improve the error message (without the kind of trick that Jeff shows). --Guido van Rossum (home page: http://www.python.org/~guido/)


Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev

Why not have the property find its name in the class's dict, something like this:

(in class property) def set(self, obj, value): if self.fset is not None: self.fset(obj, value) else: for key, value in type(obj).dict.iteritems(): if value is self: raise AttributeError, "Property '" + key + "' is read-only." # No name? Strange put possible I guess. raise AttributeError, "can't set property"