オブジェクトの保存: データの永続性の実装
オブジェクト指向プログラミングでは、オブジェクトの状態の保存と取得はデータの永続性にとって重要です。
オブジェクトを保存するには、Python pickle モジュールを利用できます。
Pickle のオブジェクトのラップ:
pickle モジュールを使用すると、オブジェクトをバイナリ ストリームに「ラップ」することでオブジェクトをシリアル化できます。これを実現するには、ファイルを書き込みバイナリ モード ('wb') で開き、pickle.dump() 関数を使用してオブジェクトを保存します。
import pickle # Example object company1 = Company('banana', 40) with open('company_data.pkl', 'wb') as outp: pickle.dump(company1, outp, pickle.HIGHEST_PROTOCOL)
cPickle または _pickle (Python 3):
パフォーマンスを向上させるには、cPickle (または _pickle の使用を検討してください) Python 3) は、pickle モジュールよりもかなり高速です。 import ステートメントを置き換えるだけです:
import cPickle as pickle
プロトコル バージョンの最適化:
Pickle は、さまざまなプロトコルを使用してさまざまな形式でデータを書き込みます。プロトコル 0 は人間が読める形式ですが、バージョン 0 より大きいものはバイナリです。最高のバージョン (-1) を指定すると、Python バージョンでサポートされている最新のプロトコルが確実に使用されます:
pickle.dump(obj, outp, -1)
複数のオブジェクトの保存:
リスト、タプル、またはdict:
tech_companies = [ Company('Apple', 114.18), Company('Google', 908.60), Company('Microsoft', 69.18) ] save_object(tech_companies, 'tech_companies.pkl')
保存されたオブジェクトのアンピックリング:
保存されたオブジェクトを復元するには、リード バイナリ モード ('rb') で pickle ファイルを開き、 pickle.load() を使用して取得しますdata:
with open('company_data.pkl', 'rb') as inp: company1 = pickle.load(inp)
結論として、pickle モジュールを利用すると、オブジェクトの保存と復元の効率的な方法が提供され、アプリケーションの永続的なデータ構造を作成できるようになります。
以上がPickle を使用して Python オブジェクトを効率的に保存および取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。