with block
- File operations: Automatically closing files after use.
- Thread and process locking: Acquiring and releasing locks.
- Database connections: Connecting to and disconnecting from databases.
- Temporary environments: Creating and cleaning up temporary environments.
- Logging: Temporarily changing logging levels.
- Timing operations: Measuring the execution time of a block of code.
How Python with
- __enter__
- __exit__
python contextlib Class
from contextlib import contextmanager import time @contextmanager deftimer(label): start = time.time() try: yield finally: end = time.time() print(f'{label}: {end - start} seconds') # Usage: with timer('Model training'): # Your code block here, e.g.: # train your model