Nachdem ich gerade meine Haare wegen eines Unterschieds gezogen habe, würde ich gerne wissen, was der Unterschied wirklich in Python 2.5 ist.Python 'mit' Aussage versus 'mit .. als'
Ich hatte zwei Blöcke Code (dbao.getConnection()
gibt eine MySQLdb-Verbindung zurück).
conn = dbao.getConnection()
with conn:
# Do stuff
Und
with dbao.getConnection() as conn:
# Do stuff
dachte ich, diese die gleiche Wirkung haben würden, aber offenbar nicht als die conn
Aufgabe der letzteren Version ein Cursor
war. Woher kam der Cursor und ist gibt es eine Möglichkeit, die Initialisierung der Variablen und mit Anweisung irgendwie zu kombinieren?
Die zweite Version initialisiert eine Variable, conn. Welches eigentliche Problem hast du? Was hat anders funktioniert? Welchen Fehler hast du bekommen? Können Sie eine Ausgabe hinzufügen, um das Problem zu zeigen? –
Entschuldigung. Dachte, es wäre aus der Beschreibung klar geworden. dbao.getConnection() gibt eine MySQLdb-Verbindung zurück, so dass conn = dbao.getConnection() dazu führt, dass ein Conn ein Connection-Objekt ist, während "mit dbao.getConnection() as conn" dazu führt, dass conn ein Cursor-Objekt ist.Die Fehlermeldung war, dass Conn im letzten Fall keine Rollback-Methode hatte, die es nicht hätte haben sollen, da es ein Cursor war. –