(why) inconsistent yield/return syntax?

Mark McEahern marklists at mceahern.com
Mon Feb 10 22:11:14 CET 2003


[Gerrit Holl]
> An empty return is ok and return None, but an empty yield isn't.
> My question is why...

I'm curious whether you can state your question in terms of a goal that you
are trying to accomplish.

For instance:

"How do I define a zero-length iterator?"

#!/usr/bin/env python

from __future__ import generators

import unittest

def whynot():
    if True:
        raise StopIteration
    yield None

class test(unittest.TestCase):

    def test(self):
        """Our silly iterator is pointless, but so what."""
        l = [x for x in whynot()]
        self.assertEquals(len(l), 0)

if __name__ == '__main__':
    unittest.main()

Cheers,

// m

-






More information about the Python-list mailing list