Python''s context
managers (with statement)
are very handy at handling resources. (You see way less finally in Python code due to them).
Maybe objects in Python can be used as context mangers - files, locks, database
drivers and more. But some objects still do not.
To handle these "legacy" objects you can use contextlib.closing
function which will return a context manager that will call obj.close() once the context manager
exists.
Here''s an example of using contextlib.closing
with sockets. We''ll be doing a simple HTTP request (Yeah, you should probably
use requests or urlopen
- this is just an example :)
Note also the user of iter
with sentinel to read chunks up to 1K from the socket.
If it won't be simple, it simply won't be. [Hire me, source code] by Miki Tebeka, CEO, 353Solutions
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment