相关疑难解决方法(0)

Python的'with'语句与'with ... as'

由于差异我刚刚脱掉头发,我想知道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.哪里光标来自并且有办法的变量初始化,并声明以某种方式结合起来?

python syntax

15
推荐指数
2
解决办法
8600
查看次数

Pythonic关闭/终止对象的方式

我有一个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(),这似乎不一致

python multithreading

3
推荐指数
2
解决办法
147
查看次数

标签 统计

python ×2

multithreading ×1

syntax ×1