fork(1) download
  1. from contextlib import contextmanager
  2.  
  3. @contextmanager
  4. def context():
  5. print 'open'
  6. yield
  7. print 'close'
  8.  
  9. def generator():
  10. with context():
  11. for x in xrange(10):
  12. print 'yielding', x
  13. yield x
  14.  
  15. def f():
  16. for x in generator():
  17. if x == 5:
  18. return
  19.  
  20. f()
  21.  
Success #stdin #stdout 0.01s 7736KB
stdin
Standard input is empty
stdout
open
yielding 0
yielding 1
yielding 2
yielding 3
yielding 4
yielding 5