python without OO

Terry Reedy tjreedy at udel.edu
Wed Jan 26 13:55:16 EST 2005


"Peter Maas" <peter at somewhere.com> wrote in message 
news:ct8517$m03$1 at swifty.westend.com...
> Davor schrieb:
>> so initially I was hoping this is all what Python is about, but when I 
>> started looking into it it has a huge amount of additional (mainly OO) 
>> stuff which makes it in my view quite bloated now.
>
> So you think f.write('Hello world') is bloated and file_write(f,'Hello 
> world')
> is not? This is the minimum amount of OO you will see when using Python.

Now that we have gently teased Davor for his OO fear, I think we should 
acknowledge that his fears, and specifically his bloat fear, are not 
baseless.

In Python, one can *optionally* write a+b as a.__add__(b).  That is bloat. 
I believe, in some strict OO languages, that bloat is mandatory.  For one 
operation, the bloat is minor.  For ever a relatively simple expression 
such as b**2-4*a*c, it becomes insanity.

If we were to have to write sin(x) instead as x.sin(), there would not be 
syntax bloat.  And it would be easier to write generic float-or-complex 
math functions, just as your print example shows how __str__ methods 
facilitate generic print operations.  But if the class method syntax were 
manditory, there would be class and/or class hierarchy bloat due to the 
unlimited number of possible functions-of-a-float and large number of 
actual such functions that have been written.

On the other hand... curryleft(list.append, somelist) is a bit more to type 
than somelist.append.

> print  "*** Davor's evolution towards an OO programmer ***"

Your Four Steps to Python Object Oriented Programming - vars, lists, dicts, 
and finally classes is great.  It makes this thread worthwhile.  I saved it 
and perhaps will use it sometime (with credit to you) to explain same to 
others.

Terry J. Reedy






More information about the Python-list mailing list