"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > पायथन में सर्कुलर डिपेंडेंसी मुद्दों को कैसे हल करें?

पायथन में सर्कुलर डिपेंडेंसी मुद्दों को कैसे हल करें?

2024-11-08 को प्रकाशित
ब्राउज़ करें:276

How to Resolve Circular Dependency Issues in Python?

पायथन में सर्कुलर निर्भरता रिज़ॉल्यूशन

पायथन में, सर्कुलर निर्भरता का सामना करना संभव है जब मॉड्यूल अपनी परिभाषा के लिए एक-दूसरे पर भरोसा करते हैं। ऐसा ही एक परिदृश्य तब मौजूद होता है जब दो फ़ाइलें, नोड.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()
    ...
विज्ञप्ति वक्तव्य यह लेख यहां पुनर्मुद्रित है: 1729326978 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.कॉम से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3