Why doesn’t Python have true private variables like Java?

Posted by PalpitationOk839@reddit | Python | View on Reddit | 38 comments

Hey everyone

Today I was learning about encapsulation in Python and honestly I got a bit surprised

In languages like Java we have proper private keywords but in Python it feels like nothing is truly private
Even with double underscores it just does name mangling and you can still access it if you really want

So I was wondering why Python is designed this way

Is it because Python follows a different philosophy or is there some deeper reason behind it

Also in real projects how do developers maintain proper encapsulation if everything can technically be accessed

Trying to understand how to think about this in a more practical and runable way

Would love to hear your thoughts 👍