आप किस बारे में बात कर रहे हैं उसे dependency injection कहा जाता है और इसे आपके कोड को टेस्ट करने योग्य बनाने के लिए एक अच्छा अभ्यास माना जाता है। मुझे नहीं लगता कि पाइथन के बारे में कुछ भी है जो इसे अनियंत्रित या खराब अभ्यास करेगा।
वहाँ आप में पारित झंडा किसी तरह के आधार पर अलग मॉड्यूल आयात करके अन्य तरीकों से आप अजगर में यह कर सकता है, उदाहरण के लिए कर रहे हैं: मॉड्यूल आप उपयोग करना है इच्छा को
class Foo(object):
def __init__(self, testing=False):
if testing:
import module_test as module
else:
import module
self.module = module
लेकिन एक संदर्भ गुजर अधिक लचीला, चिंताओं को बेहतर तरीके से अलग करता है, और किसी वर्ग या उदाहरण (या स्ट्रिंग या पूर्णांक) के संदर्भ को पारित करने से कम पाइथोनिक नहीं है जिसे आप उपयोग करना चाहते हैं। प्रश्न में वर्ग कई अलग अलग मॉड्यूल से एक का उपयोग कर सकते हैं
class Foo(object):
def __init__(self, module=None):
if not module:
import module
self.module = module
यह निर्भरता इंजेक्शन की तरह लगता है और वास्तव में एक अच्छा विचार भी है। हालांकि, एक या दो कार्यों/कक्षाओं की बजाय आपको कितनी बार एक संपूर्ण मॉड्यूल की आवश्यकता होती है? – delnan