codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
>>> a=BinaryTree(yielder()) >>> b=iter(a) >>> next(b) 'a' >>> next(b) yielder: None 'a' >>> next(b) yielder: None 'a' >>> try: b.send('asd') except StopIteration as e: y=e yielder: asd binary: yielder return >>> next(b) Traceback (most recent call last): File "<pyshell#83>", line 1, in <module> next(b) StopIteration >>> y StopIteration() >>> dir(y) ['__cause__', '__class__', '__context__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setstate__', '__sizeof__', '__str__', '__subclasshook__', '__traceback__', 'args', 'value', 'with_traceback'] >>> y.value >>> y.args () >>> y.value >>> type(y.value) <class 'NoneType'> >>> 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: yield from self.left print ('binary: ') >>> a=BinaryTree(y()) >>> b=iter(a) >>> a=BinaryTree(y()) >>> b=iter(a) >>> try: next(b) except Exception as e: print (e.__traceback__,e.args,e.__class__,e.value,sep='\n') 'a' >>> try: next(b) except Exception as e: print (e.__traceback__,e.args,e.__class__,e.value,sep='\n') 'b' >>> try: next(b) except Exception as e: print (e.__traceback__,e.args,e.__class__,e.value,sep='\n') <traceback object at 0x00F31CB0> ('end',) <class 'StopIteration'> end binary: <traceback object at 0x00F31CB0> () <class 'StopIteration'> None >>> def y(): try: yield 'a' yield 'b' raise StopIteration('end') except Exception as e: print (e.__traceback__,e.args,e.__class__,e.value,sep='\n') raise e >>> a=BinaryTree(y()) >>> b=iter(a) >>> >>> try: next(b) except Exception as e: print (e.__traceback__,e.args,e.__class__,e.value,sep='\n') 'a' >>> try: next(b) except Exception as e: print (e.__traceback__,e.args,e.__class__,e.value,sep='\n') 'b' >>> try: next(b) except Exception as e: print (e.__traceback__,e.args,e.__class__,e.value,sep='\n') <traceback object at 0x00F31F08> ('end',) <class 'StopIteration'> end binary: <traceback object at 0x00F31E40> () <class 'StopIteration'> None
Private
[
?
]
Run code
Submit