#TIL : Context Managers in Python
In Python, sometimes you will see this syntax
with something: do_something_else(something)
Then you ask yourself, why I have to use this
with syntax ? What runs inside that statement ?
Here is how it works, it’s called Context Managers in object
You can define context managers for a class of object to make sure some logic runs correctly without forgeting
class Animal: def __init__(self, name): self.name = name def __enter__(self): print("Enter the room !") def __exit__(self, exc_type, exc_value, traceback): print("Exit the room !") kitty = Animal("Kitty Kat") with kitty: print(kitty.name)
Enter the room ! Kitty Kat Exit the room !
So, when you start using
with keyword on a object, it runs
__enter__ method, when everything inside
with block is runned,
__exit__ will be called !
It’s cool feature of Python !