Atributos de nomes de nomes e atributos de classe "private" em Python

Eu estava escrevendo um decorador que precisa acessar variáveis ​​privadas e encontrei essa discrepância. Alguém pode explicar isso?

(Python 2.5)

Nomear mangling funciona conforme o esperado para os atributos definidos na classe:

>>> class Tester(object):
...    __foo = "hi"

>>> t = Tester()
>>> t._Tester__foo
'hi'

Atributos de instância não funcionam (e é assim que devemos fazer certo?)

>>> class Tester(object):
...     def __init__(self):
...         self.__foo = "hi"

>>> t = Tester()
>>> t._Tester__foo
AttributeError: 'Tester' object has no attribute '_Tester__foo'

P.S. O "atributo de classe" é a palavra certa para isso? Eles não são estáticos, mas se você fizer um desses uma lista, ou algum outro tipo mutável, ele é compartilhado ...

Atualizar

Na verdade, o segundo exemplo também funciona bem. Foi um problema de hardware (o reinício ajudou).

questionAnswers(1)

yourAnswerToTheQuestion