An object used with the with statement whose enter and exit methods run setup and guaranteed cleanup around a block.
Context manager
An object used with the with statement whose __enter__ and __exit__ methods run setup and guaranteed cleanup around a block.