We use python extensively, and I think python's "access control by convention" is pretty great.
The reason for access control is not to protect from malicious programmers -- it is protect from programmers who don't know better and from honest mistakes.
So all you need is a simple rule ("don't access private methods") and now everyone knows which fields are public (and thus are OK to use) and which fields can disappear any moment.
For extra enforcement, you can add pylint to your CI so it flags all the protected accesses. But really, a good team culture is often enough.
The reason for access control is not to protect from malicious programmers -- it is protect from programmers who don't know better and from honest mistakes.
So all you need is a simple rule ("don't access private methods") and now everyone knows which fields are public (and thus are OK to use) and which fields can disappear any moment.
For extra enforcement, you can add pylint to your CI so it flags all the protected accesses. But really, a good team culture is often enough.