On Mon, 16 May 2005, Aahz wrote: > I'll comment here in hopes of staving off responses from multiple > people: I don't think these should be double-underscore attributes. The > currently undocumented ``args`` attribute isn't double-underscore, and I > think that's precedent to be followed.
That isn't the criterion i'm using, though. Here's my criterion, and maybe then we can talk about what the right criterion should be: System attributes are for protocols defined by the language. (I'm using the term "system attribute" here to mean "an attribute with a double-underscore name", which i picked up from something Guido wrote a while back [1].) For example, __init__, __add__, __file__, __name__, etc. are all attributes whose meaning is defined by the language itself as opposed to the Python library. A good indicator of this is the fact that their names are hardcoded into the Python VM. I reasoned that __cause__, __context__, and __traceback__ should also be system attributes since their meaning is defined by Python. Exceptions are just classes; they're intended to be extended in arbitrary application-specific ways. It seemed a good idea to leave that namespace open. -- ?!ng [1] http://mail.python.org/pipermail/python-dev/2003-June/036239.html _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com