Why less emphasis on private data?
Sebastian 'lunar' Wiesner
basti.wiesner at gmx.net
Sun Jan 7 19:16:49 CET 2007
[ Thomas Ploch <Thomas.Ploch at gmx.net> ]
> sturlamolden schrieb:
>> time.swift at gmail.com wrote:
>>> 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
>>> data public. What is the logic behind that choice?
>> The designers of Java, C++, C#, Ada95, Delphi, etc. seem to think
>> that if an object's 'internal' variables or states cannot be kept
>> private, programmers get an irresistible temptation to mess with them
>> in malicious ways. But if you are that stupid, should you be
>> programming in any language? The most widely used language is still
>> C, and there is no concept of private data in C either, nor is it
> There is a kind of this concept in C with 'static' declarations.
>> As mentioned in other replies, it is not rocket science to access a
>> class private data. In C++ you can cast to void*, in Java and C# you
>> can use reflection. C++ is said to be an "unsafe" language because
>> programmers can, using a few tricks, mess with the vtables. But how
>> many really do that?
> Exactly, if they were available, a lot more would do that. I think
> this is the point. Programmers who can do that normally are sensible
> towards that people who have designed this or that knew what they were
> doing. But there are enough people that don't have a clue and _will_
> fiddle around and then flame all kind of mailing lists with requests
> for help cause they did it wrong.
Those people deserve to fail for being just extraordinary stupid...
Freedom is always the freedom of dissenters.
More information about the Python-list