5

pysqlite の例を見ると、SQLite ライブラリには 2 つの使用例があります。

from sqlite3 import dbapi2 as sqlite3

import sqlite3

sqlite3 API をサポートする方法が 2 つあるのはなぜですか? 2つの違いは何ですか?彼らは同じですか?通常の使用では、どちらが好ましいでしょう。

追加した

名前空間の点でそれらが異なることは知っていたので、使用方法の点で同じかどうか、つまり、同じ API セットを持っているかどうかを尋ねたかったのです。

4

2 に答える 2

8

それらは同じです。Lib/私のPythonインストール(v2.6)のディレクトリに、sqlite3パッケージには次の__init__.pyファイルが含まれています:

from dbapi2 import *

つまり、インポートの 2 つの方法はまったく同じです。

import sqlite3とはいえ、これは文書化されたアプローチであるため、使用することをお勧めします。

于 2010-09-20T18:26:09.463 に答える
2

それらは同じではありません。

最初のケースでは、dbapi2 シンボルを sqlite3 モジュールから現在の名前空間にインポートしています。

最後のケースでは、名前空間に sqlite3 モジュールをインポートするだけです。

違いは、最初のケースでは dbapi2 (sqlite3 としてエイリアス化された) クラスを直接使用できることです。後者のケースでは、参照するsqlite3.dbapi2たびに参照する必要があります。

詳細については、Python のドキュメントを参照してください。

于 2010-09-20T18:02:18.673 に答える