Does Python really follow its philosophy of "Readability counts"?

Bruno Desthuilliers bruno.42.desthuilliers at websiteburo.invalid
Fri Jan 23 07:57:52 EST 2009


Russ P. a écrit :
(snip)
> I am curious about something. Have you ever needed to access a
> "private" attribute (i.e., one named with a leading underscore) in
> Python code that you did not have the source code for? For that
> matter, have you ever even used a library written in Python without
> having access to the source code?

No to both.

> As I said before, if you have the source code you can always change
> private attributes to public in a pinch if the language enforces
> encapsulation.

And then have to maintain a fork. No, thanks.

> But if you are working on a team project, you can't
> change the code that another member of a team checks in.

Why on earth couldn't I change the code of another member of my team if 
that code needs changes ? The code is the whole team's ownership.

Now and FWIW,  in this case (our own code), I just don't need to "mess 
with internals" - I just just change what needs to be changed.

> That is how
> enforced data hiding helps teams of developers manage interfaces.

I totally fails to find any evidence of this assertion in the above 
"demonstration".

> The
> bigger the team and the bigger the project, the more it helps.

Your opinion.

> Mr. D'Aprano gave an excellent example of a large banking program.
> Without enforced encapsulation, anyone on the development team has
> access to the entire program and could potentially sneak in fraudulent
> code much more easily than if encapsulation were enforced by the
> language.

My my my. If you don't trust your programmers, then indeed, don't use 
Python. What can I say (and what do I care ?). But once again, relying 
on the language's access restriction to manage *security* is, well, kind 
of funny, you know ?

> I am certainly not saying that Python is useless without enforced data
> hiding. It is obviously very useful for a wide range of applications
> and domains already. I am only saying that it's usefulness could be
> enhanced if enforced encapsulation can be added

You might have a chance to sell this to a clueless pointy haired boss - 
I mean,  that enforced access restriction will make Python more suitable 
for some big enterprizey project. As far as I'm concerned, I'm not 
buying it.

> without somehow
> comromising the language.

Then just forget it.

> I don't know enough about the inner workings
> of the Python interpreter to know if that is the case or not (I am an
> aeronautical engineer), but the objections I've seen so far on this
> thread have not impressed me.

I've not seen much technical objections - but anyway: learn (I mean, 
*really* learn) how Python's object model works, and you'll perhaps find 
out why this would break the whole thing.



More information about the Python-list mailing list