[New-bugs-announce] [issue9451] Strengthen __*__ system name warning
Terry J. Reedy
report at bugs.python.org
Mon Aug 2 00:53:50 CEST 2010
New submission from Terry J. Reedy <tjreedy at udel.edu>:
Current" 2.3.2. Reserved classes of identifiers
System-defined names. These names are defined by the interpreter and its implementation (including the standard library); applications should not expect to define additional names using this convention. The set of names of this class defined by Python may be extended in future versions. See section Special method names."
Current pydev thread,Is it intentional that "sys.__debug__ = 1" is illegal in Python 2.7?, Guido said;
"But yes, the docs should clarify that *any* use of __*__ names, in
any* context, that does not follow explicitly documented use, is
subject to breakage without warning."
I think I would replace the current "applications ... convention" with Guido's sentence, starting with "*Any* use", though I might put it at the end as the second most important sentence of the paragraph.
Until this thread, I did not understand the import of 'expect to' in that middle sentence. Apparently, it means that if a definition works now, it may become invalid in the future if it becomes not just a system word, but a reserved word like __debug__ did. Guido's sentence covers this case and all others, so the current sentence would no longer be needed.
assignee: docs at python
nosy: docs at python, tjreedy
title: Strengthen __*__ system name warning
versions: Python 2.7, Python 3.1, Python 3.2
Python tracker <report at bugs.python.org>
More information about the New-bugs-announce