[ create a new paste ] login | about

Link: http://codepad.org/z68nyFSj    [ raw code | fork ]

Python, pasted on Mar 6:
>>> 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


Create a new paste based on this one


Comments: