私の場合、私はこのクラスを持っています:
class CSVUploader():
def __init__(self, **kwargs):
self.acc = kwargs['acc']
self.prod = kwargs['prod']
self.url_id = kwargs['url_id']
self.dest = kwargs['dest']
self.header = kwargs['header']
self.metadata = kwargs.copy()
self.table_name = '_'.join([self.prod, self.url_id])
このクラスは多くの情報を保持し、内部の内容に基づいて多くのことを行い**kwargs
ます。後で、このクラスに渡す辞書 (**kwargs) にさらにパラメーターを追加する必要があります。問題は、さらに 2 つまたは 10 個のパラメーターを追加する必要があるかどうかはよくわかりません。
現在self.<variable>
、このクラスでロジックを実行するときに使用しています。例えば:
self.check_columns(self.table_name, self.header)
私の他の考えは、self.metadata['variable']
の代わりに使用することでしself....
た。最後に、私の最後の考えは、これらすべてを保持する別のクラスを作成することでしたself.header
。しかし、私のコードでは、次のように呼び出します。
metadata = Metadata()
metadata.header
したがって、それを行う方法はたくさんありますが、最もpythonicな方法は何でしょうか。さらに、コードを論理的に分離し、クリーンで読みやすく保つことに興味があります。