पुनः लोड () - पहले से आयातित मॉड्यूल या लोड किए गए मॉड्यूल को पुनः लोड करता है। यह उस स्थिति में काम आता है जहां आप एक इंटरैक्टिव सत्र के दौरान बार-बार एक परीक्षण स्क्रिप्ट चलाते हैं, यह हमेशा हमारे द्वारा विकसित किए जा रहे मॉड्यूल के पहले संस्करण का उपयोग करता है, यहां तक कि हमने कोड में बदलाव भी किए हैं। उस परिदृश्य में हमें यह सुनिश्चित करने की आवश्यकता है कि मॉड्यूल पुनः लोड किए गए हैं।
रीलोड () को दिया गया तर्क एक मॉड्यूल ऑब्जेक्ट होना चाहिए जो पहले सफलतापूर्वक आयात किया गया हो।
सिंटैक्स
import importlib importlib.reload(sys)
उदाहरण
>>> import sys >>> import importlib >>> importlib.reload(sys) <module 'sys' (built-in)>
हालांकि, यदि आप किसी ऐसे मॉड्यूल को पुनः लोड करने का प्रयास कर रहे हैं जो पहले आयात नहीं किया गया है, तो आपको एक त्रुटि मिल सकती है।
>>> import importlib >>> importlib.reload(sys) Traceback (most recent call last): File "<pyshell#1>", line 1, in <module> importlib.reload(sys) NameError: name 'sys' is not defined
समझने के लिए कुछ बिंदु, जब पुनः लोड () निष्पादित किया जाता है -
-
पायथन मॉड्यूल के कोड को फिर से संकलित किया जाता है और मॉड्यूल-स्तरीय कोड को फिर से निष्पादित किया जाता है, वस्तुओं के एक नए सेट को परिभाषित करता है जो मॉड्यूल के शब्दकोश में नामों के लिए बाध्य होता है, जो लोडर का पुन:उपयोग करता है जो मूल रूप से मॉड्यूल को लोड करता है। हालाँकि, मॉड्यूल का init फ़ंक्शन फिर से लोड नहीं होता है
-
पुरानी वस्तुओं को तभी पुनः प्राप्त किया जाता है जब उनकी संदर्भ संख्या शून्य हो जाती है।
-
मॉड्यूल नेमस्पेस में नामों को नए ऑब्जेक्ट में बदल दिया जाता है, यदि कोई हो।
-
पुरानी वस्तुओं के अन्य संदर्भ (जैसे मॉड्यूल के बाहरी नाम) आवश्यक रूप से नई वस्तुओं को संदर्भित नहीं करते हैं और यदि आवश्यक हो तो उन्हें प्रत्येक नामस्थान में अद्यतन किया जाना चाहिए।