Python becoming less Lisp-like

Paul Boddie paul at boddie.org.uk
Wed Mar 16 09:43:21 CET 2005


Steven Bethard <steven.bethard at gmail.com> wrote in message news:<f_ednc-jcPDIa6vfRVn-tg at comcast.com>...
> 
> Certainly descriptors in the "wrong hands" could lead to confusing, 
> unreadable code.  But Python is a "we're all adults here" language, and 
> so we have to trust other coders to be responsible.

The problem is as much about social dynamics as it is about
responsibility. Introduce a cool new feature and there'll always be a
minority who will use it in every situation, no matter how absurd; the
problem arises when these unnecessary excursions into absurdity start
to dominate the code you're using or maintaining.

>                                                      There are some very 
> reasonable uses for descriptors which I don't believe are really 
> confusing, for example the lazy property recipe:
> 
> http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/363602

This is all very exciting, but...

  * You could do this with __getattr__ since Python 1.x, possibly
    even Python 0.x. Moreover, the __getattr__ example would be
    more readable.

  * This introduces runtime baggage to solve a notation issue. Yes,
    accessor methods are "so Java", but once a program is running
    who cares whether it's a property or a method that is getting
    called? (Actually, for interactive inspection of an object
    model there is some argument for having properties...)

I think the first point quite reasonably illustrates the original
contributor's concerns about Python's current consistency/coherency.

Paul



More information about the Python-list mailing list