yield_all needed in Python

Isaac To iketo2 at netscape.net
Tue Mar 1 21:34:05 EST 2005


>>>>> "Douglas" == Douglas Alan <nessus at mit.edu> writes:

    Douglas> If you'll reread what I wrote, you'll see that I'm not
    Douglas> concerned with performance, but rather my concern is that
    Douglas> I want the syntactic sugar.  I'm tired of writing code
    Douglas> that looks like

    Douglas>   def foogen(arg1):
    Douglas>      def foogen1(arg2):
    Douglas>         # Some code here
    Douglas>      # Some code here
    Douglas>      for e in foogen1(arg3): yield e
    Douglas>      # Some code here
    Douglas>      for e in foogen1(arg4): yield e
    Douglas>      # Some code here
    Douglas>      for e in foogen1(arg5): yield e      
    Douglas>      # Some code here
    Douglas>      for e in foogen1(arg6): yield e      

How about writing it like the following?

def gen_all(gen):
    for e in gen:
        yield e

def foogen(arg1):
    def foogen1(arg2):
        # Some code here
    # Some code here
    gen_all(arg3)
    # Some code here
    gen_all(arg4)
    # Some code here
    gen_all(arg5)
    # Some code here
    gen_all(arg6)

Regards,
Isaac.



More information about the Python-list mailing list