Reloading Modules in Python in Hindi – मॉड्यूल को दोबारा Load कैसे करें?

Arpit Nageshwar
⏰ 4 min read

Reloading Modules in Python in Hindi – मॉड्यूल को दोबारा Load कैसे करें?

Table of Contents

Python में जब हम किसी module को import करते हैं, तो Python उसे सिर्फ एक बार load करता है। अगर उसी program को दोबारा run किए बिना, module की file में कोई change किया जाए, तो वो change automatically program में नहीं दिखता। इसी समस्या को solve करने के लिए Reloading Modules का concept आता है।

  • जब कोई module पहली बार import होता है, तो Python उसे memory में cache कर लेता है, ताकि बार-बार import करने पर वही पुराना loaded version मिले, ना कि दोबारा से पूरा module पढ़ा जाए।

  • यह performance के लिए तो अच्छा है, लेकिन development के दौरान problem बन जाता है, क्योंकि अगर हमने module की file में कुछ बदला है, तो वो update program में नहीं दिखेगा जब तक हम module को manually reload न करें।

  • इसी वजह से Python एक special function देता है जिससे हम किसी already imported module को फिर से load कर सकते हैं, बिना पूरा program restart किए।

  • यह topic खासकर उन developers के लिए useful है जो interactive environments जैसे Jupyter Notebook या Python shell में लगातार code test करते रहते हैं।

Need for Reloading Modules

अब समझते हैं कि आखिर Module Reloading की जरूरत क्यों पड़ती है।

  • Module पहले से ही cache हो जाता है:
    Python एक बार import होने के बाद module को sys.modules नाम की एक dictionary में store कर लेता है। अगली बार वही module import करने पर, Python दोबारा file नहीं पढ़ता, बल्कि सीधे cache से वही पुराना version दे देता है।

  • Development के time पर बार-बार restart करना परेशानी भरा है:
    अगर आप किसी बड़े project पर काम कर रहे हैं और सिर्फ एक छोटी सी function change की है, तो पूरे program को बार-बार बंद करके फिर से start करना समय की बर्बादी है।

  • Interactive Sessions में testing करना:
    Jupyter Notebook या Python interactive shell में लोग अक्सर code को live test करते हैं। ऐसे में हर बार changes देखने के लिए session बंद करना practical नहीं होता।

  • Bug Fixing के दौरान:
    जब किसी module में bug fix किया जाता है, तो उसे turant test करने के लिए reload करना जरूरी हो जाता है, ताकि पुराना buggy code memory में ना रह जाए।

  • Plugins और Dynamic Loading:
    कुछ applications ऐसी होती हैं जो runtime पर plugins load करती हैं। अगर plugin file update हो, तो उसे बिना पूरा application बंद किए reload करना पड़ता है।

module.py file me change kiya sys.modules cache purana version stored bina reload update nahi hoga Program purana output dikhata hai

यह SVG दिखा रहा है कि module की file में change करने के बाद भी, Python cache की वजह से program पर पुराना ही version असर डालता है जब तक reload ना किया जाए।

Reloading Process

Python में module को reload करने के लिए importlib नाम का built-in module काम आता है। इसमें reload() नाम का function मिलता है, जो किसी already imported module को फिर से load कर देता है।

Step by Step Process

  • Step 1 – पहले module को import करें:
    सबसे पहले सामान्य तरीके से module को import किया जाता है, जैसे import mymodule

  • Step 2 – importlib module को import करें:
    Reload करने के लिए importlib module चाहिए होता है, इसे भी import करना पड़ता है।

  • Step 3 – module की file में changes करें:
    इस step में आप module की source file खोलकर उसमें जरूरी बदलाव करते हैं, जैसे कोई नया function जोड़ना या पुराना logic बदलना।

  • Step 4 – importlib.reload() call करें:
    अब importlib.reload(mymodule) लिखकर उस module को दोबारा load किया जाता है। इससे Python उस module की file को फिर से पढ़ता है और नया updated version memory में रखता है।

  • Step 5 – updated version को use करें:
    Reload होने के बाद जब भी उस module के functions या variables को call किया जाएगा, नया updated code ही चलेगा।

import mymodule
import importlib

# mymodule.py me kuch change karne ke baad
importlib.reload(mymodule)

ध्यान रहे कि reload() सिर्फ उसी module को दोबारा load करता है जिसे आपने पहले से import किया हुआ है। अगर module import ही नहीं हुआ, तो पहले normal import करना जरूरी है, तभी reload() काम करेगा।

ध्यान रखने वाली बातें

  • पुराने Python versions (Python 2 और शुरुआती Python 3) में reload() सीधे built-in function की तरह available था, लेकिन अब इसे importlib module से इस्तेमाल किया जाता है।

  • अगर module के अंदर कोई object पहले ही किसी variable में assign हो चुका है, तो reload करने के बाद भी वो पुराना reference वैसा ही रह सकता है, इसलिए कभी-कभी दोबारा import करना बेहतर होता है।

  • Production code में reload का इस्तेमाल आमतौर पर नहीं किया जाता, यह ज्यादातर development और testing के दौरान ही काम आता है।

Examples of Module Reloading in Python in Hindi

Example 1: Basic Reload

मान लीजिए एक file greet.py है जिसमें एक simple function है –

# greet.py
def hello():
    print("Namaste from version 1")

अब इसे import करके call करते हैं –

import greet
greet.hello()

Output –

Namaste from version 1

अब अगर हम greet.py file को बिना program बंद किए बदल दें –

# greet.py (updated)
def hello():
    print("Namaste from version 2")

तो सीधे greet.hello() call करने पर अभी भी पुराना output ही आएगा, जब तक हम reload नहीं करते –

import importlib
importlib.reload(greet)
greet.hello()

अब output बदल जाएगा –

Namaste from version 2

Example 2: Interactive Session में बार-बार Reload

import importlib
import mymodule

while True:
    choice = input("Reload karna hai? (y/n): ")
    if choice == "y":
        importlib.reload(mymodule)
        print("Module reload ho gaya")
    else:
        break

यह example दिखाता है कि कैसे किसी interactive session में user के कहने पर बार-बार module को reload किया जा सकता है, बिना पूरा program दोबारा शुरू किए।

Example 3: Reload से पहले Module Check करना

import sys
import importlib

module_name = "mymodule"

if module_name in sys.modules:
    importlib.reload(sys.modules[module_name])
    print("Module already tha, reload kar diya")
else:
    import mymodule
    print("Module pehli baar import hua")

यह pattern अक्सर बड़े applications में इस्तेमाल होता है, जहाँ पहले check किया जाता है कि module पहले से load है या नहीं, उसके बाद ही reload किया जाता है।

>>> greet.hello() Namaste from version 1 >>> importlib.reload(greet) Namaste from version 2

यह SVG एक Python interactive shell को दिखा रहा है, जिसमें reload करने से पहले और बाद में function का output अलग-अलग आ रहा है।

FAQs

Python एक बार import किए गए module को cache कर लेता है, इसलिए अगर उस module की file में बाद में कोई change किया जाए, तो वो बदलाव तब तक program में नहीं दिखता जब तक module को दोबारा reload न किया जाए।
importlib.reload() किसी पहले से imported module को फिर से load करता है, जिससे उस module की file में किए गए latest changes program में apply हो जाते हैं।
नहीं, reload() सिर्फ उन modules पर काम करता है जो पहले से import किए जा चुके हैं। अगर module import ही नहीं हुआ, तो पहले normal import करना जरूरी होता है।
यह सबसे ज्यादा development, debugging और interactive environments जैसे Jupyter Notebook या Python shell में इस्तेमाल होता है, जहाँ बार-बार code changes को turant test करना होता है।
आमतौर पर production applications में reload() का इस्तेमाल नहीं किया जाता, क्योंकि यह मुख्य रूप से development और testing के दौरान quick changes देखने के लिए बनाया गया है।
Arpit Nageshwar

✍️ Arpit Nageshwar

Post-graduated | Web Developer | +3 yr Experience | IIT Kharagpur Certified