"Fredrik Lundh" <[EMAIL PROTECTED]> writes: > from yourcode import Secret > > class Secret(Secret): > def gethidden(self): > return self.__hidden
Heh, interesting, and it occurs to me that you could do that by accident (A inherits from B, and then something imports B and makes an inheriting class that inadvertently happens to be called A). I.e. the name mangling can fail its intended purpose. # your code: class Secret: def __init__(self): self.__hidden = "very secret value" class Parrot(secret): pass # my code from yourcode import Parrot class Secret(Parrot): # I'm not aware that you also have a Secret class def spam(self, x): self.__hidden = zoo(x) # clobbers yourcode's version of secret def eggs(self): # might inadvertently read your version's try: return self.__hidden except AttributeError: self.spam(cached_value) -- http://mail.python.org/mailman/listinfo/python-list