fork download
  1. class A:
  2.  
  3. def __enter__(self):
  4. print('entered')
  5. return self
  6.  
  7. def __exit__(self, *exc_info):
  8. self.attr = 'reset'
  9. print('exited')
  10.  
  11.  
  12. def f():
  13. with A() as instance:
  14. instance.attr = 'set'
  15. print('attribute set')
  16. return instance
  17.  
  18.  
  19. # Will this always be True?
  20. print(f().attr == 'reset')
Success #stdin #stdout 0.02s 8736KB
stdin
Standard input is empty
stdout
entered
attribute set
exited
True