python 'with', czy powinienem użyć contextlib.closing?

from contextlib import closing

def init_db():
    with closing(connect_db()) as db:
        with app.open_resource('schema.sql') as f:
            db.cursor().executescript(f.read())
        db.commit()

To jest z samouczka dotyczącego kolby Krok 3 (http://flask.pocoo.org/docs/tutorial/dbinit/#tutorial-dbinit). I jestem trochę ciekawa linii 4 tego.

Czy muszę importować i używać tej metody 'contextlib.closing ()'?

Kiedy się dowiedziałemz oświadczenie, wiele artykułów mówi, że zamyka plik automatycznie po procesie takim jak poniżej (tak samo jak wreszcie: thing.close ())

with open('filename','w') as f:
    f.write(someString);

Nawet jeśli nie używam tego contextlib.closing () jak poniżej, co jest różnica? To od wersji 2.7.6, dziękuję.

def init_db():
    with connect_db() as db:
        with app.open_resource('schema.sql') as f:
            db.cursor().executescript(f.read())
        db.commit()

questionAnswers(2)

yourAnswerToTheQuestion