5
クラスを__init__.pyファイルで定義することは悪い習慣と考えられますか?税金計算機に似たケースがあります。私は、電卓クラスと、その後、電卓クラスが内部的に参照する州固有の税金計算クラスのセットを持っていたいと思います。ような何か:Python __init__.pyとクラス
class TaxCalculator():
def __init__(self):
self.ca_tax_calculator = CATaxCalculator()
self.ny_tax_calculator = NYTaxCalculator()
def get_tax_calculator_for_state(self, state):
tax_calculator = None
if state == "CA":
tax_calculator = self.ca_tax_calculator
else:
tax_calculator = self.ny_tax_calculator
return tax_calculator
def calculate(self, purchase_info):
return self.get_tax_calculator_for_state(purchase_info.state).calculate(purchase_info.amount)
私はこのようなルックスを考えているディレクトリ構造:
/calculators/__init__.py
/calculators/ca.py
/calculators/ny.py
そして__init__.pyは "TaxCalculator" 機能を収容しました。
クラスは、電卓すなわち参照します:
from calculators import TaxCalculator
calculator = TaxCalculator().calculate(purchase_info)
を悪い習慣かどうか、実際にPython的と考えていることですか?
これはあなたが探している完全な解決策であるかどうかはわかりませんが、以下のStackoverflow投稿はよく使われている方法をよく説明しています。 http://stackoverflow.com/a/18979314/4194964 モジュールレベルの変数と、明示的ではない暗黙的な考え方に違反しないように、__init__.pyファイルをどのように細くすべきかについての議論 –