由于差异我刚刚脱掉头发,我想知道Python 2.5中的差异究竟是什么.
我有两个代码块(dbao.getConnection()
返回一个MySQLdb连接).
conn = dbao.getConnection()
with conn:
# Do stuff
Run Code Online (Sandbox Code Playgroud)
和
with dbao.getConnection() as conn:
# Do stuff
Run Code Online (Sandbox Code Playgroud)
我认为这些会有相同的效果,但显然不是conn
后一版本的对象是一个Cursor
.哪里光标来自并且是有办法的变量初始化,并声明以某种方式结合起来?
我有一个Whoosh(文件索引器)编写器对象
>>> a
<whoosh.filedb.filewriting.SegmentWriter object at 0x013DFE10>
Run Code Online (Sandbox Code Playgroud)
由于whoosh不允许多个编写者并实现线程安全(AFAIK !!),我想在使用它时关闭该对象.
>>> a.is_closed
False
Run Code Online (Sandbox Code Playgroud)
但它没有密切的方法.我确信所有成熟的python库对象都有内部函数,例如__ exit__,它们允许所有基本功能.关闭Python对象的正确方法是什么?或者它取决于图书馆本身?我以它的字面形式采用Python的"单一但显而易见的正确方法"方式
这是dir(a)的粘贴:http://pastebin.com/Q5hceTr8
后记
我刚刚在前一天通过询问有关Python语句的Confused来了解with语句.这个问题很明显,因为我需要一种处理全局对象的方法; 这样我可以在多次添加或删除后进行提交.好像whoosh有一个searcher.close()而不是一个indexer.close(),这似乎不一致