3 ms·
`foo._a` accessible outside `Foo` but it makes code look gross and means you're doing something wrong. `foo.__a` accessible only inside `Foo` I think it works
by cheez 8y ago
`foo._a` accessible outside `Foo` but it makes code look gross and means you're doing something wrong.
`foo.__a` accessible only inside `Foo`
I think it works.
- culturedsystems 8y ago> `foo.__a` accessible only inside `Foo` It's not all that inaccessible. Try: class C: def __init__(self): self.__private = 'Is it private?' c = C() c._C__private Double underscore names aren't so much about access control (because access control isn't strongly enforced) as about limiting name collisions (by including the class name in the underlying field name).
- dragonwriter 8y agoSpecifically, it's about avoiding collision of "private" names via inheritance.