'从sqlite3导入dbapi2作为sqlite3'vs'导入sqlite3'?

时间:2010-09-20 17:57:55

标签: python pysqlite

当我看到pysqlite的示例时,SQLite库有两个用例。

from sqlite3 import dbapi2 as sqlite3

import sqlite3

为什么有两种方法可以支持sqlite3 api?这两者有什么区别?它们是一样的吗?在正常使用中,这将是优选的。

ADDED

我知道它们在命名空间方面有所不同,我想问一下它们在用途方面是否相同,我的意思是,它们是否具有相同的API集?

2 个答案:

答案 0 :(得分:7)

他们是一样的。在我的Python安装的Lib/目录(v2.6)中,sqlite3包中包含一个__init__.py文件:

from dbapi2 import *

这意味着两种导入方式完全相同。

那就是说,我绝对建议只使用import sqlite3 - 因为这是记录在案的方法。

答案 1 :(得分:2)

它们不一样。

在第一种情况下,您将dbapi2符号从sqlite3模块导入当前名称空间。

在最后一种情况下,您只需在命名空间中导入sqlite3模块。

不同之处在于,在第一种情况下,您可以直接使用dbapi2(别名为sqlite3)类,在后一种情况下,您必须始终引用sqlite3.dbapi2来引用它。 / p>

有关python documentation

的更多信息,请参阅参考资料