About classes and OOP in Python

Ben C spamspam at spam.eggs
Tue Apr 11 14:50:23 EDT 2006


On 2006-04-11, Michele Simionato <michele.simionato at gmail.com> wrote:
> Roy Smith wrote:
><snip>
>> That being said, you can indeed have private data in Python.  Just prefix
>> your variable names with two underscores (i.e. __foo), and they effectively
>> become private.  Yes, you can bypass this if you really want to, but then
>> again, you can bypass private in C++ too.

> Wrong, _foo is a *private* name (in the sense "don't touch me!"), __foo
> on the contrary is a *protected* name ("touch me, touch me, don't worry
> I am protected against inheritance!").
> This is a common misconception, I made the error myself in the past.

Please explain! I didn't think _foo meant anything special, __foo
expands to _classname__foo for some sort of name-hiding. What am I
missing?



More information about the Python-list mailing list