Python double underscore mangling
Posted
by
gnr
on Stack Overflow
See other posts from Stack Overflow
or by gnr
Published on 2012-11-21T16:52:49Z
Indexed on
2012/11/21
16:59 UTC
Read the original article
Hit count: 388
I am a bit confused by this behavior (using python 3.2):
class Bar: pass
class Foo:
def __init__(self):
self.__cache = None
bar = Bar()
bar.__cache = None
foo = Foo()
print(vars(bar)) #returns {'__cache': None}
print(vars(foo)) #returns {'_Foo__cache': None}
I've read up a bit on how double-underscores cause attribute names to be "mangled", but I would have expected the same name-mangling in both cases above.
The meaning of a single- and a double-underscore before an object name in Python
Any ideas what's going on here?
© Stack Overflow or respective owner