从sqlite3导入dbapi2作为sqlite3'与'import sqlite3'的区别?
当我看到关于pysqlite的例子时,发现SQLite库有两种使用方式。
from sqlite3 import dbapi2 as sqlite3
还有
import sqlite3
为什么会有两种方式来支持sqlite3的接口?这两者有什么区别?它们是一样的吗?在正常使用中,哪种方式更好呢?
补充说明
我知道它们在命名空间上是不同的,我想问问它们在使用上是否相同,我是说,它们的接口是否一样?
2 个回答
1
它们并不一样。
在第一个例子中,你是把sqlite3模块里的dbapi2符号引入到当前的命名空间中。
而在最后一个例子中,你只是把整个sqlite3模块引入到命名空间里。
区别在于,在第一个例子中,你可以直接使用dbapi2(它被称为sqlite3这个别名),而在后一个例子中,每次想用它的时候,你都得写成sqlite3.dbapi2
。
想了解更多信息,可以查看python的文档
9
它们是一样的。在我安装的Python(版本2.6)的Lib/
目录下,sqlite3
这个包里有一个__init__.py
文件,内容是这样的:
from dbapi2 import *
这意味着这两种导入方式完全相同。
不过,我还是强烈建议你使用import sqlite3
,因为这是官方推荐的方式。