सॉफ्टवेयर विकास में सर्कुलर निर्भरता एक आम समस्या हो सकती है, खासकर जब स्तरित आर्किटेक्चर या जटिल मॉड्यूल संरचनाओं के साथ काम करते हैं। पायथन में, सर्कुलर निर्भरताएँ कई समस्याओं को जन्म दे सकती हैं, जिनमें आयात त्रुटियाँ और विशेषता त्रुटियाँ शामिल हैं। विशेषताओं के रूप में एक-दूसरे के उदाहरणों पर भरोसा करें। उदाहरण के लिए:
इस उदाहरण में, A को प्रारंभ करने के लिए B के एक उदाहरण की आवश्यकता होती है, और B को प्रारंभ करने के लिए A के एक उदाहरण की आवश्यकता होती है, जिससे एक परिपत्र निर्भरता बनती है।
class A: def __init__(self, b_instance): self.b_instance = b_instance class B: def __init__(self, a_instance): self.a_instance = a_instance
पायथन में सर्कुलर निर्भरता से बचने के लिए, निम्नलिखित रणनीतियों पर विचार करें:
एक दृष्टिकोण दूसरे मॉड्यूल के आयात को तब तक स्थगित करना है जब तक कि इसकी वास्तव में आवश्यकता न हो। यह निर्भरता को समाहित करने के लिए फ़ंक्शंस या विधियों का उपयोग करके किया जा सकता है। उदाहरण के लिए:
2. चक्र को तोड़ना
def get_a_instance(): from b import B # Import B only when a_instance is needed return A(B()) def get_b_instance(): from a import A # Import A only when b_instance is needed return B(A())
निष्कर्ष
class Factory: def create_a(self): a_instance = A() b_instance = self.create_b() # Avoid circular dependency by calling to self a_instance.b_instance = b_instance return a_instance def create_b(self): b_instance = B() a_instance = self.create_a() # Avoid circular dependency by calling to self b_instance.a_instance = a_instance return b_instance
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3