[issue44244] protected members accessible in other modules

Dennis Sweeney report at bugs.python.org
Thu May 27 01:04:00 EDT 2021


Dennis Sweeney <sweeney.dennis650 at gmail.com> added the comment:

Being in different modules is irrelevant. Attribute names that start with double underscores and don't end with double underscores are "mangled" by the compiler to include the class name as well:

>>> class MyClass:
...     def __init__(self):
...         self.__data = 17
... 
...         
>>> x = MyClass()
>>> x._MyClass__data
17


See https://docs.python.org/3/tutorial/classes.html?highlight=mangle#private-variables

I don't think there's a bug here.

----------
nosy: +Dennis Sweeney

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue44244>
_______________________________________


More information about the Python-bugs-list mailing list