Ayant juste retiré mes cheveux en raison d'une différence, j'aimerais savoir quelle est la différence est en Python 2.5.L'instruction 'with' de Python versus 'with .. as'
J'avais deux blocs de code (dbao.getConnection()
renvoie une connexion MySQLdb).
conn = dbao.getConnection()
with conn:
# Do stuff
Et
with dbao.getConnection() as conn:
# Do stuff
Je pensais que ce serait le même effet, mais apparemment pas l'objet conn
de cette dernière version était un Cursor
. D'où vient le curseur et y at-il un moyen de combiner l'initialisation de la variable et l'instruction en quelque sorte?
La deuxième version initialise une variable, conn. Quel problème réel avez-vous? Ce qui a fonctionné différemment? Quelle erreur avez-vous obtenu? Pouvez-vous inclure une sortie pour montrer le problème? –
Désolé. Pensé qu'il aurait été clair à partir de la description. dbao.getConnection() retourne une connexion MySQLdb donc conn = dbao.getConnection() a pour résultat un conn étant un objet Connection alors que "avec dbao.getConnection() comme conn" entraîne un objet Cursor.Le message d'erreur était que dans ce dernier cas conn ne disposait pas d'une méthode d'annulation qu'il ne devrait pas avoir car il s'agissait d'un curseur. –