Path: blob/main/python/pylang/test/generators.py
1396 views
# vim:fileencoding=utf-81# License: BSD2# Copyright: 2015, Kovid Goyal <kovid at kovidgoyal.net>345def g1():6yield 17yield 28910def g2():11for i in range(2):12yield from g1()131415def g3():16data = yield 117yield data181920class A:21def __init__(self):22self.items = [1, 2, 3]2324def __iter__(self):25for x in self.items:26yield x272829assrt.deepEqual([x for x in g1()], [1, 2])30assrt.deepEqual([x for x in g2()], [1, 2, 1, 2])31assrt.deepEqual([x for x in A()], [1, 2, 3])3233g = g3()34assrt.equal(g.next().value, 1)35assrt.equal(g.next('a').value, 'a')3637a = (x for x in range(3))38assrt.deepEqual(list(a), [0, 1, 2])39a = ([x, x**2] for x in range(3))40assrt.deepEqual(list(a), [[0, 0], [1, 1], [2, 4]])41assrt.deepEqual(list(x for x in range(3)), [0, 1, 2])424344def t(a, b):45assrt.deepEqual(list(a), list(b))464748t((x for x in range(1)), (y for y in range(1)))495051