To make a method or attribute private (inaccessible from the outside), simply 
start its
name with two underscores

----《Beginning Python From Novice to Professional》

but there is another saying goes:
Beginning a variable name with a single underscore indicates that the variable 
should be treated as ‘private’.

I test both these 2 rules ,it seems only names that start with two underscores 
are REAL private methods or attributes .

>>> class A:
...     def __init__(self):
...         self.a = 'a'
...         self._a = '_a'
...         self.__a = '__a'
...



>>> ap = A()
>>> ap.a
'a'
>>> ap._a
'_a'
>>> ap.__a
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
AttributeError: A instance has no attribute '__a'

so what is your opinion about single leading underscore and private methods or 
attributes?
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to