Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन में निरपेक्ष और सापेक्ष आयात


कई बार जब हम पायथन कोड बनाते हैं तो हमें पता चलता है कि हमें किसी अन्य पायथन फ़ाइल या पैकेज से कोड एक्सेस करने की आवश्यकता है। यह तब होता है जब आपको उस अन्य पायथन फ़ाइल या पैकेज को अपने वर्तमान कोड में आयात करने की आवश्यकता होती है। इसे प्राप्त करने का सीधा तरीका बस अपने वर्तमान पायथन प्रोग्राम के शीर्ष पर नीचे दिया गया स्टेटमेंट लिखना है।

import package_name or module_name or from package_name import module_name/object_name

जब उपरोक्त स्टेटमेंट पार्स किया जाता है तो इंटरप्रेटर निम्न कार्य करता है।

  • इंटरप्रेटर पहले से आयात किए गए सभी मॉड्यूल्स के कैश में नामों को खोजेगा। इस कैश मॉड्यूल का नाम sys.modules है।

  • यदि उपरोक्त चरण में नहीं मिला तो इंटरप्रेटर बिल्ट-इन मॉड्यूल्स की सूची में खोजेगा। ये मॉड्यूल पायथन स्टैंडर्ड लाइब्रेरी का हिस्सा हैं।

  • यदि चरण-2 में भी नहीं मिला, तो इंटरप्रेटर sys.path में परिभाषित निर्देशिकाओं की सूची में पैकेज या मॉड्यूल नामों की खोज करेगा जिसमें वर्तमान निर्देशिका खोजी जाने वाली पहली निर्देशिका है।

  • उपरोक्त किसी भी चरण में आयात किए गए मॉड्यूल को खोजने पर, पैकेज या मॉड्यूल का नाम वर्तमान प्रोग्राम के स्थानीय स्कोप से बांध दिया जाता है।

  • यदि पैकेज या मॉड्यूल कभी नहीं मिलता है, तो ModuleNotFoundError उत्पन्न होता है।

आयात के बारे में कुछ नियम।

आयात स्टेटमेंट्स को उन फ़ाइलों के शीर्ष पर उल्लेख किया जाना चाहिए जो उन स्टेटमेंट्स का उपयोग करती हैं। आयात का क्रम निम्नानुसार होना चाहिए।

  • पायथन के स्टैंडर्ड लाइब्रेरी मॉड्यूल्स

  • थर्ड-पार्टी मॉड्यूल्स से आयात

  • लोकल एप्लिकेशन से आयात

निरपेक्ष आयात (Absolute Import)

इस प्रकार के आयात में, हम आयात किए जाने वाले पैकेज/मॉड्यूल/फ़ंक्शन का पूरा पथ निर्दिष्ट करते हैं। डॉट (.) का उपयोग निर्देशिका संरचना के लिए स्लैश (/) के स्थान पर किया जाता है।

पैकेज के लिए निम्न निर्देशिका संरचना पर विचार करें।

python_project_name/packageA/moduleA1.py
python_project_name/packageA/moduleA2.py

साथ ही, मान लें कि moduleA2 में myfunc नामक एक फ़ंक्शन है। जब हम उस फ़ंक्शन को अपने वर्तमान पायथन प्रोग्राम में आयात करना चाहते हैं, तो निरपेक्ष पथ का उपयोग करके हम निम्न आयात स्टेटमेंट का उल्लेख करते हैं।

from packageA.moduleA2 import myfunc

निरपेक्ष आयात का बड़ा लाभ यह है, यह स्पष्ट रूप से इंगित करता है कि आयात कहाँ हो रहा है, दूसरी तरफ कभी-कभी यह काफी लंबा हो सकता है।

सापेक्ष आयात (Relative Import)

सापेक्ष आयात में, हम आयात किए गए पैकेज के पथ को वर्तमान स्क्रिप्ट के स्थान के सापेक्ष उल्लेख करते हैं जो आयातित मॉड्यूल का उपयोग कर रही है।

एक डॉट वर्तमान स्थान से एक निर्देशिका ऊपर इंगित करता है और दो डॉट दो निर्देशिकाएं ऊपर और इसी तरह।

पैकेज के लिए निम्न निर्देशिका संरचना पर विचार करें।

python_project_name/packageA/moduleA1.py
python_project_name/packageB/moduleB1.py

मान लें कि उपरोक्त पैकेज संरचना में moduleB1 को moduleA1 आयात करने की आवश्यकता है। तब आयात स्टेटमेंट है:

from ..packageA import moduleA1

दो डॉट इंगित करते हैं कि moduleB1 के स्थान से, हमें python_project_name निर्देशिका में जाना होगा और फिर moduleA1 प्राप्त करने के लिए packageA में जाना होगा।

इस प्रकार के आयात छोटे होते हैं और शीर्ष स्तर की परियोजना को एक स्थान से दूसरे स्थान पर ले जाया जा सकता है बिना आयात स्टेटमेंट्स में पथ बदले आसानी से। नकारात्मक पक्ष पर, यदि आयात फ़ोल्डर्स साझा किए जाते हैं तो पथ में कुछ संशोधन होने पर कोड आसानी से प्रभावित हो जाता है।

  1. CSS एब्सोल्यूट और रिलेटिव यूनिट्स समझना CSS एब्सोल्यूट और रिलेटिव यूनिट्स समझना

    CSS एब्सोल्यूट यूनिट्स एब्सोल्यूट लेंथ यूनिट्स एक-दूसरे के सापेक्ष निश्चित होती हैं। ये यूनिट्स तब उपयोग की जाती हैं जब आउटपुट फॉर्मेट पहले से ज्ञात हो। एब्सोल्यूट यूनिट्स तालिका: क्रमांकयूनिट और विवरण 1cm - सेंटीमीटर 2mm - मिलीमीटर 3in - इंच (1in = 96px = 2.54cm) 4px

  1. CSS एब्सोल्यूट और रिलेटिव यूनिट्स CSS एब्सोल्यूट और रिलेटिव यूनिट्स

    CSS एब्सोल्यूट यूनिट्स और रिलेटिव यूनिट्स दोनों दूरी की इकाइयों की श्रेणी में आते हैं।CSS रिलेटिव यूनिट्स किसी एलिमेंट की लंबाई को दूसरे एलिमेंट के संदर्भ में परिभाषित करते हैं।उदाहरण के लिए, vh रिलेटिव यूनिट व्यूपोर्ट हाइट के सापेक्ष होता है।निम्नलिखित CSS रिलेटिव यूनिट्स हैं:Sr.Noयूनिट और रिलेटिव

  1. Python में Matplotlib इम्पोर्ट करना Python में Matplotlib इम्पोर्ट करना

    सबसे पहले, सुनिश्चित करें कि आपके सिस्टम पर python और pip प्रीइंस्टॉल्ड हैं। Python संस्करण जांचने के लिए, टाइप करें: python --version pip संस्करण जांचने के लिए, टाइप करें: pip -V फिर, Matplotlib इंस्टॉल करने के लिए कमांड प्रॉम्प्ट में निम्नलिखित pip कमांड चलाएं: pip install matplotlib यह सत्यापि