'из sqlite3 импортировать dbapi2 как sqlite3' против 'импортировать sqlite3'? - PullRequest
4 голосов
/ 20 сентября 2010

Когда я вижу примеры для pysqlite, есть два варианта использования библиотеки SQLite.

from sqlite3 import dbapi2 as sqlite3

и

import sqlite3

Почему существует два способа поддержки API sqlite3?В чем разница между двумя?Они одинаковы?При нормальном использовании, что было бы предпочтительным.

ДОБАВЛЕНО

Я знал, что они различаются с точки зрения пространства имен, и я хотел спросить, одинаковы ли они с точки зрения использования , я имею в виду, имеют ли онитот же набор API?

Ответы [ 2 ]

7 голосов
/ 20 сентября 2010

Они одинаковы.В каталоге Lib/ моей установки Python (v2.6) пакет sqlite3 содержит файл __init__.py с таким именем:

from dbapi2 import *

Это означает, что два способа импорта абсолютно идентичны.

Тем не менее, я определенно рекомендую просто использовать import sqlite3 - так как это документированный подход.

2 голосов
/ 20 сентября 2010

Они не одинаковы.

В первом случае вы импортируете символ dbapi2 из модуля sqlite3 в текущее пространство имен.

В последнем случае вы просто импортируете модуль sqlite3 в пространство имен.

Разница в том, что в первом случае вы можете напрямую использовать класс dbapi2 (псевдоним sqlite3), который в последнем случае вам придется ссылаться на sqlite3.dbapi2 все время, когда вы хотите ссылаться на него.

См. Дополнительную информацию по питону Документация

...