Example of Python with usage

  • 2020-05-09 18:49:22
  • OfStack

with in python can significantly improve code friendliness, such as:


with open('a.txt') as f: 
    print f.readlines() 

To use with for our own class, just add two functions to this class, s 7en__, s 8en__ :

>>> class A: 
    def __enter__(self): 
        print 'in enter' 
    def __exit__(self, e_t, e_v, t_b): 
        print 'in exit' 
 
>>> with A() as a: 
    print 'in with' 
 
in enter 
in with 
in exit 

In addition, there is one module contextlib in python library, which allows you to use with without building classes with s 14en__, s 15en__ :

>>> from contextlib import contextmanager 
>>> from __future__ import with_statement 
>>> @contextmanager 
... def context(): 
...     print 'entering the zone' 
...     try: 
...         yield 
...     except Exception, e: 
...         print 'with an error %s'%e 
...         raise e 
...     else: 
...         print 'with no error' 
... 
>>> with context(): 
...     print '----in context call------' 
... 
entering the zone 
----in context call------ 
with no error 

This is the contextmanager that is used the most, and there is another closing that is not very useful

from contextlib import closing 
import urllib 
 
with closing(urllib.urlopen('http://www.python.org')) as page: 
    for line in page: 
        print line 


Related articles: