How does python create objects that support with statements
Editor to share with you how python creates objects that support with statements. I believe most people don't know much about it, so share this article for your reference. I hope you can learn a lot after reading this article. Let's learn about it together.
Create objects that support with statements
We all know how to open a file or use a with statement to acquire a lock, but how can we do something similar ourselves? In general, we can use the _ _ enter__ and _ _ exit__ methods to implement the context manager protocol:
ClassConnection: def _ init__ (self):... Def _ _ enter__ (self): # Initialize connection... Def _ _ exit__ (self, type, value, traceback): # Close connection... WithConnection () as c: # _ _ enter__ () executes... # conn.__exit__ () executes
The above is the most common implementation, but there is a simpler way:
From contextlib import contextmanager @ contextmanager def tag (name): print (f "") yield print (f "") with tag ("H2"): print ("This is Title.")
The above code snippet implements the content management protocol using the contextmanager manager decorator. When you enter the "with" block, execute the first part of the "tag" function (before "yield"), then yield, and finally the rest.
These are all the contents of the article "how python creates objects that support with statements". Thank you for reading! I believe we all have a certain understanding, hope to share the content to help you, if you want to learn more knowledge, welcome to follow the industry information channel!