たとえば、DBFファイルのデータをデータベースにインポートするプログラムを作成したいとします。私はアルゴリズムをコンパイルしました。最初に私はDBFファイルをCSVファイルに変換し、次にCSVファイルをPandas Dataframeに変換します。次に、Pandas Dataframeからデータベースにデータをインポートします。したがって、アルゴリズムの各ステップは、他のステップとは独立して機能することができる別個のサブルーチンである。Python OOPコーディングスタイル
import csv
import dbf
import pandas as pd
class Dbf3ToCsv(object):
"""Process a DBF III w/o memo file to a CSV file"""
def __init__(self):
pass
class CsvToDataframe(object):
"""Process a CSV file to Pandas Dataframe"""
def __init__(self):
pass
class DataframeToDatabase(object):
"""Process a Pandas Dataframe to a Database"""
def __init__(self):
pass
しかし、私は3つのサブルーチンがすべて1つの共通プログラムに組み立てられるように、別のクラスを用意しています。
class ImportDbfToDatabase(object):
"""Import a DBF data to a database"""
def __init__(self):
pass
私はコードを正しく書いていますか?あるいは基本的なプログラムのクラスを何らかの形で別の方法で書く必要がありますか?
このようなプロセスのワークフローをどのように実装するのが最適でしょうか?つまり、これらの3つの方法を組み合わせる別の方法を実装する必要がありますか?入力ファイルはこのメソッドに送られます。 または、これらの3つのメソッドを特定の順序で呼び出すメソッドを '__init__'メソッド全体に置く方が良いでしょうか?入力ファイルはクラスのインスタンスに送られます。これはどのようにして最善ですか?何を考慮に入れる価値がありますか? – jazzis18