由於差異,我剛剛拉掉了我的頭髮,我想知道真的在Python 2.5中有什麼區別。Python'with'語句與'with .. as'
我有兩個代碼塊(dbao.getConnection()
返回一個MySQLdb連接)。
conn = dbao.getConnection()
with conn:
# Do stuff
而且
with dbao.getConnection() as conn:
# Do stuff
我認爲這將有同樣的效果,但顯然不如後者版本的conn
對象是Cursor
。光標從哪裏來,是有沒有辦法將變量初始化和語句結合起來?
第二個版本初始化變量conn。你有什麼實際問題?什麼工作不同?你得到了什麼錯誤?你能包括一些輸出來顯示問題嗎? – 2009-05-24 11:21:38
對不起。認爲從描述中可以清楚看到。 dbao.getConnection()返回一個MySQLdb連接,所以conn = dbao.getConnection()將導致conn爲Connection對象,而「dbao.getConnection()as conn」導致conn成爲Cursor對象。錯誤消息是在後一種情況下,conn沒有回滾方法,因爲它是一個Cursor,所以它不應該有這種方法。 – 2009-05-24 21:12:35