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

Luis Zarrabeitia kyrie at uh.cu
Wed Jan 14 17:24:12 CET 2009


On Wednesday 14 January 2009 12:57:42 am James Mills wrote:
> Russ:
>
> 1. Quit while you're ahead.
> 2. OOP is encapsulating data and functionality into a single grouping
> (object). 
> 3. Other features more recently developed by OO languages such as 
> Polymorphism, Access Control (a type of encapsulation), Inheritance
> and Multiple Inheritance are all irrelevant and OO languages either
> implement all or a subset of these features and each do so
> differently.

To further your point, I'd say that python _doesn't_ have polymorphism. It 
doesn't need it - the natural, expected, "OOP" behavior is always there, you 
cannot break it. A dog will always bark and a cat will always meow, 
regardless of the context and the inheritance relation between a cat and a 
dog (there should be none, but I couldn't think of a better example than the 
broken 'a cat is a dog'... please bear with me). If the very concept of 
polymorphism is superfluous in python, would that make python 'less' OOP?

Judging by this thread, I'd guess that Russ believes that languages like C# 
are closer to his OOP ideal... and guess what, C# not only needs a word for 
the concept of "objects should behave as you expect them to behave - we want 
no barking cats, ever", but it is even not polymorphic by default (the 
cursed "virtual" keyword). 

-- 
Luis Zarrabeitia (aka Kyrie)
Fac. de Matemática y Computación, UH.
http://profesores.matcom.uh.cu/~kyrie



More information about the Python-list mailing list