पायथन इम्पोर्ट

पढ़ने का समय: 4 मिनट
प्रकाशित तिथि:
अंतिम अपडेट:

पाइथन प्रोग्रामिंग भाषा में, इंपोर्ट का उपयोग पैकेज और मॉड्यूल को कनेक्ट करने के लिए किया जाता है। यह कोड को एप्लिकेशन के तार्किक “नोड्स” में वितरित करने की अनुमति देता है (डेटा मॉडल, हैंडलर, आदि)। जिससे कोड वाली फ़ाइलों में बोझ कम होता है।

लाभ:

  • कोड की पठनीयता बढ़ जाती है।
  • कोड को तार्किक रूप से “नोड्स” में विभाजित किया जाता है। यह खोजना और डिबग करना आसान बनाता है।
  • एक टीम के रूप में काम करते समय, यह स्पष्ट करता है कि प्रत्येक व्यक्ति क्या कर रहा है और क्यों।

नुकसान:

  • यह समझना होगा कि क्या किया जा रहा है और क्यों।

पाइथन में import का उपयोग कैसे करें?

पाइथन में import का सिंटैक्स सरल और सीधा है:

# This line imports something_we_want
import something_we_want 

# This line imports something_we_want, as aww(Logical and simple)
import something_we_want as aww 

# This line imports from something_we_want something(Logical and simple)
from something_we_want import something

# This line imports from something_we_want something, as s(Logical and simple)
from something_we_want import something as s

#The syntax as allows to refer to the imported as the newly described
# further name (this only works within our file)

आप क्या आयात कर सकते हैं?

import को बेहतर ढंग से समझने के लिए, नीचे दिए गए उदाहरण पर विचार करें।

something_we_want.py:

def something():
    pass

somedata = 5

main.py:

# 1 case
import something_we_want
something_we_want.something()

import something_we_want
print(something_we_want.somedata)

# 2 case
import something_we_want as aww
aww.something()

import something_we_want as aww
print(aww.somedata)

# 3 case
from something_we_want import something
something()

from something_we_want import somedata
print(somedata)

# 4 case
from something_we_want import something as s
s()

from something_we_want import somedata as sd
print(sd)

# Classes are imported in analogy to functions

सहमत हूँ, यह बहुत साफ-सुथरा, पठनीय और समझने में आसान है।

पकड़ क्या है?

ऐसे सरल उदाहरण में भी, एक जाल है जिसके बारे में बहुत से लोग नहीं जानते हैं। विशेषकर तब यदि आप नए प्रोग्रामर हैं, तो आप यह मानकर आगे बढ़ सकते हैं।

पाइथन की विचारधारा काफी दिलचस्प है और इसकी वजह से इसमें प्रवेश करना, कोड लिखना और उसे पढ़ना आसान हो जाता है। लेकिन, यहीं पर जाल भी छिपा होता है।

मेरे पाइथन का उपयोग करने के अनुभव से, मुझे OOP का मुख्य विचार इस प्रकार समझ में आया है कि सब कुछ एक वस्तु है। इसमें क्या गलत है, आप पूछ सकते हैं?

सभी फाइलें, फंक्शन इत्यादि वस्तुएँ हैं। लेकिन फाइलों (मॉड्यूल) के पीछे कौनसी वस्तु और कौनसा वर्ग है?

यह बहुत सरल है! यह प्रोग्रामर के बीच सबसे प्रिय वर्ग है जो सिंगलटन डिजाइन पैटर्न का उपयोग करता है।

इसलिए, यदि आपकी परियोजना में एक जटिल संरचना है, तो एक चर का आयात और उसमें आगे संशोधन करने पर आपको समझने में काफी कठिनाई हो सकती है। (इसके जीवनचक्र के दौरान एक चर का कोई भी मान हो सकता है और इसकी कोई गारंटी नहीं होती है।)

विस्तृत अनुप्रयोग संरचना और आयात के लिए मौजूदा दृष्टिकोण

अक्सर अनुप्रयोग विकास में, प्रोग्रामर अनुप्रयोग को तार्किक “नोड्स” में विभाजित करने का प्रयास करते हैं। यह दृष्टिकोण कोड की पठनीयता में सुधार करता है और टीम आधारित विकास की अनुमति देता है (एक व्यक्ति एक “नोड” के कार्यान्वयन की देखभाल करता है, दूसरा किसी अन्य का)। इस तरह एक अनुप्रयोग संरचना का जन्म होता है, जो अक्सर कार्यक्षमता की जटिलता के कारण काफी व्यापक होती है। इसे “शाखित” कहा जाता है क्योंकि एक प्रविष्टि बिंदु होता है जहां से कार्यक्षमता बढ़ती जाती है जैसे कि एक पेड़।

शाखित संरचना का एक उदाहरण :

  • main.py
    • app(निर्देशिका)
      • models(निर्देशिका)
        • User.py
      • handlers(निर्देशिका)
        • auth.py

इसके लिए दो मुख्य दृष्टिकोण हैं (पूरे प्रोजेक्ट में एक ही दृष्टिकोण से चिपके रहना सबसे अच्छा है):

  1. नामयुक्त (पूर्ण)
  2. अनाम (सापेक्ष)

models.py से auth.py में नामित आयात का एक उदाहरण:

# auth.py
from app.models import User

models.py से auth.py में अनाम आयात का एक उदाहरण:

# auth.py
from ..models import User

#The number of dots indicates how many (objects) we move up from the original one.
#In this example, the first dot raises us to the level of the handlers object,
#And the second dot raises us to the level of the app object

ये दो पूरी तरह से अलग दृष्टिकोण हैं। पहले मामले में, हम “रूट” (हमारे एप्लिकेशन का प्रवेश बिंदु) से “बाहर” जाते हैं। दूसरे मामले में, हम “लीफ” (हमारी वर्तमान फ़ाइल) से “अंदर” जाते हैं।

आयात दृष्टिकोण के पेशेवरों और विपक्ष:

नामयुक्त अनाम
पेशेवरोंदृश्यमान आयात और अनुप्रयोग संरचना। उच्च पठनीयता।आयात संरचना का एक हिस्सा दिखाई देता है। प्रोग्रामर को एप्लिकेशन की पूरी संरचना जानने की आवश्यकता नहीं है।
आयात प्रवेश बिंदु पर निर्भर नहीं है। कोड एप्लिकेशन से बंधा नहीं रहता है। यह अनिवार्य रूप से कोड को कहीं से भी (परीक्षण, अलग से, आदि) निष्पादित करने की अनुमति देता है। डिबगिंग क्षमता बढ़ जाती है। प्रोग्रामर को परियोजना में पूरी तरह से शामिल किए बिना एप्लिकेशन के अलग-अलग नोड्स को विकसित करने की संभावना दिखाई देती है।
दोषआयात प्रवेश बिंदु पर निर्भर है। प्रोग्रामर को एप्लिकेशन संरचना जानने की आवश्यकता है। कोड एप्लिकेशन से बहुत अधिक जुड़ा हुआ है। यह अनिवार्य रूप से डिबगिंग, परीक्षण, आदि को जटिल बनाता है। प्रोग्रामर परियोजना में अत्यधिक शामिल हो जाता है।आयात की पठनीयता कम हो जाती है।
हालाँकि पहले दृष्टिकोण के उपयोग में महत्वपूर्ण कमियाँ हैं, फिर भी यह लोकप्रिय है। प्रोग्रामर इसके अधिक अभ्यस्त हैं, भले ही इसमें कमियाँ हों। और शुरुआती अक्सर विकल्पों के बारे में नहीं सोचते।

पी.एस.

यह लेख नौसिखिए प्रोग्रामर के लिए लिखा गया था जो पायथन प्रोग्रामिंग भाषा सीखना चाहते हैं, इसलिए कुछ उदाहरण जानबूझकर सरल हैं और मौजूदा दृष्टिकोणों को समझाने पर केंद्रित हैं।

वही कोड लिखें जो आप स्वयं निष्पादक से प्राप्त करना चाहते हैं।

5 / 5. 1

शेयर:

Leave a Comment