2

私の場合、私はこのクラスを持っています:

 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な方法は何でしょうか。さらに、コードを論理的に分離し、クリーンで読みやすく保つことに興味があります。

4

1 に答える 1