diff options
| author | stijn <stijn@ignitron.net> | 2019-01-03 15:19:42 +0100 |
|---|---|---|
| committer | Damien George <damien.p.george@gmail.com> | 2019-01-27 13:01:28 +1100 |
| commit | 42863830be2d19c7dcdf7ccf1fa66168b1bdc13a (patch) | |
| tree | 7a79ea7a839754ea15f6a98d0273632135cae29c /tests/basics | |
| parent | 51577629b2e91be3ec911167e0bd0311694166db (diff) | |
py: Add optional support for 2-argument version of built-in next().
Configurable via MICROPY_PY_BUILTINS_NEXT2, disabled by default.
Diffstat (limited to 'tests/basics')
| -rw-r--r-- | tests/basics/builtin_next_arg2.py | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/basics/builtin_next_arg2.py b/tests/basics/builtin_next_arg2.py new file mode 100644 index 000000000..b00155ec5 --- /dev/null +++ b/tests/basics/builtin_next_arg2.py @@ -0,0 +1,34 @@ +# test next(iter, default) + +try: + next(iter([]), 42) +except TypeError: # 2-argument version not supported + print('SKIP') + raise SystemExit + +print(next(iter([]), 42)) +print(next(iter(range(0)), 42)) +print(next((x for x in [0] if x == 1), 43)) + +def gen(): + yield 1 + yield 2 + +g = gen() +print(next(g, 42)) +print(next(g, 43)) +print(next(g, 44)) + +class Gen: + def __init__(self): + self.b = False + + def __next__(self): + if self.b: + raise StopIteration + self.b = True + return self.b + +g = Gen() +print(next(g, 44)) +print(next(g, 45)) |
