Why less emphasis on private data?
Diez B. Roggisch
deets at nospam.web.de
Sun Jan 7 01:41:44 CET 2007
time.swift at gmail.com schrieb:
> Coming from a C++ / C# background, the lack of emphasis on private data
> seems weird to me. I've often found wrapping private data useful to
> prevent bugs and enforce error checking..
> It appears to me (perhaps wrongly) that Python prefers to leave class
> data public. What is the logic behind that choice?
Private data is a convention, not a strict enforcement, for both Java
Depending on your C++ compiler, a simple
#define private public
will give you access to all data you want. Besides the fact that casting
to a void* pointer and just accessing the private parts isn't rocket
The same applies to java, for whatever reasons (I presume
serialization), you can access private fields via reflection.
In python, private members are usually declared using a single or double
underscore. And the basic idea is: "if you tamper with this, you've been
warned". Which is the way coding between consenting adults should be.
To be honest: I've stumbled over more cases of unescessary hoops to jump
through due to private declarations than bugs caused of me exploiting
things I've been told by the compiler not to tamper with it.
Summary: not important, forget about it, enjoy python!
More information about the Python-list