पायथन में सर्कुलर निर्भरता रिज़ॉल्यूशन
पायथन में, सर्कुलर निर्भरता का सामना करना संभव है जब मॉड्यूल अपनी परिभाषा के लिए एक-दूसरे पर भरोसा करते हैं। ऐसा ही एक परिदृश्य तब मौजूद होता है जब दो फ़ाइलें, नोड.py और path.py, क्रमशः नोड और पथ वर्गों को परिभाषित करती हैं, जिनमें से प्रत्येक एक दूसरे को संदर्भित करती है।
प्रारंभ में, path.py ने नोड तक पहुंचने के लिए node.py आयात किया वस्तु। हालाँकि, एक हालिया संशोधन ने नोड में एक विधि पेश की जो पथ ऑब्जेक्ट को संदर्भित करती है। इसने एक सर्कुलर निर्भरता बनाई, जिससे path.py आयात करते समय एक अपवाद उत्पन्न हुआ।
सर्कुलर निर्भरता को हल करने के लिए कई दृष्टिकोण हैं:
1। फॉरवर्ड रेफरेंस:
दूसरे मॉड्यूल के क्लास नाम को आयात किए बिना घोषित करने के लिए एक मॉड्यूल में फॉरवर्ड रेफरेंस का उपयोग करें। इस मामले में, path.py नोड क्लास को आगे के संदर्भ के साथ घोषित करेगा:
from typing import ForwardRef Node = ForwardRef("Node") class Path: def method_needs_node(self, node: Node): ...
2. आलसी आयात:
आवश्यक मॉड्यूल को केवल तभी आयात करें जब किसी फ़ंक्शन के भीतर इसकी आवश्यकता हो। यह विशेष रूप से उपयुक्त है जब केवल एक या कुछ कार्यों में निर्भरता की आवश्यकता होती है:
# in node.py from path import Path class Node ... # in path.py class Path: def method_needs_node(): from node import Node n = Node() ...
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3