[Python-Dev] Deprecate __ private (was Re: PEP 8 updates/clarifications) (original) (raw)

Scott David Daniels Scott.Daniels at Acm.Org
Mon Dec 12 15:02:31 CET 2005


Jim Fulton wrote:

Ian Bicking wrote:

Jim Fulton wrote:

Ian Bicking wrote:

Private attributes should have two leading underscores, no trailing underscores.

This conflicts with a previous suggestion "Generally, double leading underscores should be used only to avoid name conflicts with attributes in classes designed to be subclassed." Or perhaps "private attributes" needs to be better explained. ... I really really hate double underscores, but I thought I'd let some other people suggest stronger language first.... _Can we officially mark private as a mistake. Perhaps: - Strongly discourage it in the style guide - Mark it in the language reference as a deprecated feature - Generate deprecation warnings when it is used? (This might be too much.)

Perhaps "The __ name convention is designed for 'mixins'; as a means of enforcing "private" it is both ineffective and annoying. For example, distutils.msvccompiler uses a bunch of instance variables which would I would like to access in a subclass, but are "unavailable" because the author could not imagine why I would need them.

--Scott David Daniels Scott.Daniels at Acm.Org



More information about the Python-Dev mailing list