当我看到pysqlite的示例时,SQLite库有两个用例。
from sqlite3 import dbapi2 as sqlite3
和
import sqlite3
为什么有两种方法可以支持sqlite3 api?这两者有什么区别?它们是一样的吗?在正常使用中,这将是优选的。
我知道它们在命名空间方面有所不同,我想问一下它们在用途方面是否相同,我的意思是,它们是否具有相同的API集?
答案 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
的更多信息,请参阅参考资料