Need Help with Encapsulation in Python!

Ola Fosheim Grøstad ola.fosheim.grostad at gmail.com
Fri Jun 17 14:22:43 UTC 2022


On Friday, 17 June 2022 at 14:14:57 UTC, Ola Fosheim Grøstad 
wrote:
> On Friday, 17 June 2022 at 13:58:15 UTC, Soham Mukherjee wrote:
>> Is there any better way to achieve encapsulation in Python? 
>> Please rectify my code if possible.
>
> One convention is to use "self._fieldname" for protected and 
> "self.__fieldname" for private class attributes.

Example:

```python
class A:
      def __init__(self):
          self._x = 3
          self.__x = 4

a = A()
print(a.__dict__)
```
will produce the output: ```{'_x': 3, '_A__x': 4}``` .

As you can see the "self.__x" field has the name "_A__x" which 
makes it "hidden", but not inaccessible.

But you can use external tools to check for misuse.



More information about the Digitalmars-d-learn mailing list