python 'with' Anweisung, soll ich contextlib.closing verwenden?

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()

Dies ist aus dem Fläschchen-Tutorial Schritt 3 (http://flask.pocoo.org/docs/tutorial/dbinit/#tutorial-dbinit). Und ich bin ein bisschen neugierig auf die Zeile 4 davon.

Muss ich diese Methode "contextlib.closing ()" importieren und verwenden?

Als ich davon erfahren habemit Aussage, viele Artikel sagten, dass es Datei automatisch nach dem Prozess schließt, wie unten. (dasselbe wie schließlich: thing.close ())

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

Auch wenn ich diese contextlib.closing () nicht wie folgt verwende: Was ist der Unterschied? Es ist ab Version 2.7.6, Danke.

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

Antworten auf die Frage(2)

Ihre Antwort auf die Frage