How does Python's OOP feel?


I

Ikon

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. As I red through
Python's tutorial it seams it has nothing of those rules. No statical,
abstract classes, functions, or variables.

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!
 
Ad

Advertisements

D

Dutch Masters

Be prepared for a slight wave of depression as you remember all the
pointless interfaces, abstract classes, and getters/setters you
created. I keep reminding myself that Java pays the bills.

Having said that, the dynamic nature of Python lets you experiment
with some more advanced OO concepts that Java doesn't have, like
mixins (like multiple inheritance) and multimethods (dispatching on
parameter types). Then there are metaclasses..
 
B

Bruno Desthuilliers

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...
 
Ad

Advertisements

L

Lie Ryan

Ikon said:
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. As I red through
Python's tutorial it seams it has nothing of those rules. No statical,
abstract classes, functions, or variables.

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!

import antigravity
 

Top