Syntax Suggestion: Pass Function Definition as Argument

Rhodri James rhodri at kynesim.co.uk
Mon Nov 11 08:05:01 EST 2019


On 07/11/2019 13:36, Stephen Waldron wrote:
> This is how it is at the moment, however it may be more agreeable, especially if that is the only purpose of the function, for python users to be able to define new functions inside of function calls.

No, not seeing it.  Sorry, I don't think "I don't want to use up a 
precious, precious name in this namespace" is a good enough reason to do 
anything, never mind something with a lot of implicit naming going on. 
Suppose you had been good and made a module of your Book example.  What 
is someone reading your code supposed to make of this?

     import books

     my_books = [
         books.Book("Triplanetary", 'E.E. "Doc" Smith'),
         books.Book("Foundation", "Isaac Asimov")
     ]

     books.doToBooks(my_books):
         print(book.name, ":", book.author)
     then:
         if book.name == "Foundation":
             print("READ THIS FIRST!")

The name "book" has just appeared out of thin air, and without stopping 
and reading the code of your module they will have to guess at what it 
is.  Now in this case their first guess is probably right, but this is a 
toy example and just as easily written with lambdas if you're that 
worried about using up names.

-10 from me.

-- 
Rhodri James *-* Kynesim Ltd


More information about the Python-list mailing list