On 7/11/19 18:10, Stephen Waldron wrote: > What I'm aiming for is the ability to, within a function call, pass a suite > that would be there automatically defined by the compiler/interpreter. > Another comment did mention lambda functions, which does to some degree > provide that capability, but is restricted to well, lambda functions (only > expressions, not statements). I don't think those restrictions are that limiting. Certainly not since python3.8 and python acquired an assigment operator. And you should also note that a list is an expression. So we could do something like the following.
class Book: def __init__(self, name, author): self.name = name self.author = author def doToBooks (bookList, first, then, book = None): for book in bookList: first(book = book) then(book = book) myBooks = [ Book("The Way of the World", "Lucy Cole"), Book("To Live or To Love", "Georgio Dunham"), Book("Twelve Days of Success", "Anita Duvette") ] import sys write = sys.stdout.write doToBooks (myBooks, first = lambda book: [write(book.name), write("\n")], then = lambda book: [write(" - "), write(book.author), write("\n")] ) The above code will print the following: The Way of the World - Lucy Cole To Live or To Love - Georgio Dunham Twelve Days of Success - Anita Duvette -- Antoon. -- https://mail.python.org/mailman/listinfo/python-list