由于差异,我刚刚拉掉了我的头发,我想知道真的在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