क्या यह __init__.py फ़ाइल में परिभाषित कक्षा रखने के लिए खराब अभ्यास माना जाता है? मेरे पास एक मामला है जो टैक्स कैलकुलेटर के समान है। मैं एक कैलकुलेटर वर्ग और फिर राज्य विशिष्ट कर कैलकुलेटर कक्षाओं का एक सेट रखना चाहता हूं जो कैलकुलेटर वर्ग आंतरिक रूप से संदर्भित करता है। कुछ की तरह:पायथन __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)
कि माना बुरा व्यवहार है या नहीं वास्तव में pythonic?
मुझे यकीन नहीं है कि यह वह पूरा समाधान है जिसे आप ढूंढ रहे हैं, लेकिन निम्नलिखित स्टैक ओवरफ्लो पोस्ट में इसका एक अच्छा स्पष्टीकरण है कि इसका उपयोग आमतौर पर किया जाता है। http://stackoverflow.com/a/18979314/4194964 मॉड्यूल स्तर चर के बारे में बात करता है और "स्पष्ट से बेहतर स्पष्ट" दर्शन का उल्लंघन करने से बचने के लिए __init__.py फ़ाइल पतली होनी चाहिए –