4 ms·
I see what you mean what I wouldn't really qualify name mangling as private members, you're discouraged to access them but you can access them all the same.
by NeutralForest 1y ago
I see what you mean what I wouldn't really qualify name mangling as private members, you're discouraged to access them but you can access them all the same.
- jjice 1y agoI'd consider it the same, personally. It's a social contract that you can absolutely break if you want, just with a bit of work. Less work in Python than it is Java, but there are ways to get to them in Java, or hell, just modify the source and change it directly. By doing that, you're doing something the developer didn't intend and you shouldn't be surprised if it doesn't work at some point in the future. Same as I'd expect in the Python case.
- NeutralForest 1y agoSure, I think the bar to modify is higher in Java for example but I can't really find fault in what you're saying because I'd never unknowingly modify a member with double underscores in Python.
- throwaway2037 1y ago> but you can access them all the same Can't you do the same in C++ using struct offsets and reinterpret_cast<>? I'm not sure what you are saying here.
- NeutralForest 1y agoI'm not familiar with C++ enough to know about circumventing `private` but in Python you can access "private" members just like any other "public" ones, with the dot notation. There's no specific enforcement at the language level, no error will be thrown.
- colejohnson66 1y agoSomething something undefined behavior