codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
>>> class BinaryTree: def __init__(self, left=None, us=None, right=None): self.left = left self.us = us self.right = right def __iter__(self): if self.left: a=yield from self.left print ('binary: '+str(a)) if self.us: yield self.us if self.right: yield from self.right >>> def yielder(): while 1: a=yield 'a' print ('yielder: '+str(a)) >>> a=BinaryTree(yielder()) >>> b=iter(a) >>> b <generator object __iter__ at 0x00F31FD0> >>> next(b) 'a' >>> next(b) yielder: None 'a' >>> next(b) yielder: None 'a' >>> b.send(3) yielder: 3 'a' >>> b.send(3) yielder: 3 'a' >>> def yielder(): while 1: a=yield 'a' print ('yielder: '+str(a)) return 'yielder return' >>> a=BinaryTree(yielder()) >>> b=iter(a) >>> next(b) 'a' >>> next(b) yielder: None binary: yielder return Traceback (most recent call last): File "<pyshell#36>", line 1, in <module> next(b) StopIteration
Private
[
?
]
Run code
Submit