How does Python's OOP feel?

Bruno Desthuilliers bruno.42.desthuilliers at websiteburo.invalid
Wed May 27 12:07:26 EDT 2009

Ikon a écrit :
> I'm rather new to Python. I have PHP for my main language and I do
> some Java. They all have a very strict OO schema.

I would describe PHP's "OO schema" as "very strict" (FWIW, I wouldn't 
qualify anything PHP as "strict" in any way...)

> As I red through
> Python's tutorial it seams it has nothing of those rules. No statical,
> abstract classes, functions, or variables.

Why so ?

> I wish someone, who has experience in both Java/PHP/C# and Python
> would tell me how mush better/worse is it to program in a language
> that misses most of the OO parts!

Where did you read that these were "most of the OO parts" ? All those 
dumb qualifiers are C++/Java's very peculiar (mis)understanding of OO. 
All you need to do proper OO are objects (defined by a unique id, a 
state and a behaviour) and messages.

As far as I'm concerned, what I don't understand is how one can do OO in 
a language that has non-object "objects" (ie: primitive types etc).

Anyway... Python's object model is indeed quite different from what 
you've "learned" with Java and PHP, and you'll have to first unlearn 
most of what you think you know about OO. OTHO, once you do understand 
Python's object model and it's incredible flexibility and power, you 
won't want to hear about Java anymore. Not to say Python is the "more 
pure" OOPL ever (if that's what you're after, Smalltalk is your friend - 
but it's not really used that much nowadays...), it's firstly a very 
*practical* language, but still it's OO all the way down (everything - 
including functions and classes and modules - is an object), and it 
really makes OO easy and usefull.

My 2 cents...

More information about the Python-list mailing list