The ins and outs of context managers and try-finally in Python
mCoding mCoding
225K subscribers
28,081 views
0

 Published On Mar 15, 2024

You can't forget!

Context managers (used with the "with" statement) and try-finally are both constructs in Python that help you ensure certain cleanup code runs even in the presence of exceptions. Becoming familiar with these constructs is important for developing good coding habits in Python. Don't put the burden of remembering how to do cleanup on yourself, use a context manager to let the object handle its own cleanup! In this video, we take a deep dive into the semantics of context managers and try-finally, including the basic examples, sharp corners (and how to avoid them!), as well as less common use-cases.

― mCoding with James Murphy (https://mcoding.io)

Source code: https://github.com/mCodingLLC/VideosS...
With statement docs: https://docs.python.org/3/reference/d...
Try-finally docs: https://docs.python.org/3/reference/c...
Pythonizing Imgui video:    • Pythonizing Imgui (feat. Cython) and ...  

SUPPORT ME ⭐
---------------------------------------------------
Sign up on Patreon to get your donor role and early access to videos!
  / mcoding  

Feeling generous but don't have a Patreon? Donate via PayPal! (No sign up needed.)
https://www.paypal.com/donate/?hosted...

Want to donate crypto? Check out the rest of my supported donations on my website!
https://mcoding.io/donate

Top patrons and donors: Jameson, Laura M, Dragos C, Vahnekie, Neel R, Matt R, Johan A, Casey G, Mark M, Mutual Information, Pi

BE ACTIVE IN MY COMMUNITY 😄
---------------------------------------------------
Discord:   / discord  
Github: https://github.com/mCodingLLC/
Reddit:   / mcoding  
Facebook:   / james.mcoding  

CHAPTERS
---------------------------------------------------
0:00 Intro
0:34 Without context managers...
1:00 Common context managers
2:01 WHEN does cleanup run?
4:36 Try-finally
7:01 With in terms of try-finally
8:11 How to write a context manager
11:38 Suppressing exceptions
12:53 Wrapping an external api
13:54 contextmanager decorator
14:51 "Actual" context managers
15:40 Decimal library
16:21 Limitations
18:51 Thanks

show more

Share/Embed