Ezio Melotti <ezio.melo...@gmail.com> added the comment:

FWIW that section used to be called "Private variables through name mangling" 
back in 1.5, and started by saying "There is now limited support for 
class-private identifiers.".

PEP8 [0] also talks about the name mangling in several places, and carefully 
avoids the use of "private":
  """
  To avoid name clashes with subclasses, use two leading underscores to
  invoke Python's name mangling rules.

  Python mangles these names with the class name: if class Foo has an
  attribute named __a, it cannot be accessed by Foo.__a.  (An insistent
  user could still gain access by calling Foo._Foo__a.) Generally, double
  leading underscores should be used only to avoid name conflicts with
  attributes in classes designed to be subclassed.
  """

And it even includes the following two notes:
  """
  We don't use the term "private" here, since no attribute is really
  private in Python (without a generally unnecessary amount of work).
  """

  """
  Not everyone likes name mangling.  Try to balance the
  need to avoid accidental name clashes with potential use by
  advanced callers.
  """

[0]: http://www.python.org/dev/peps/pep-0008/

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue12086>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to