Reloading Modules in Python in Hindi – मॉड्यूल को दोबारा Load कैसे करें?
Table of Contents
- 1. Need for Reloading Modules
- 2. Reloading Process
- 3. Examples of Module Reloading in Python in Hindi
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 करना पड़ता है।
यह 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 करने के लिएimportlibmodule चाहिए होता है, इसे भी 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 था, लेकिन अब इसेimportlibmodule से इस्तेमाल किया जाता है।अगर 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 किया जाता है।
यह SVG एक Python interactive shell को दिखा रहा है, जिसमें reload करने से पहले और बाद में function का output अलग-अलग आ रहा है।