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

पायथन में मॉड्यूल को पुनः लोड करना?

पुनः लोड () - पहले से आयातित मॉड्यूल या लोड किए गए मॉड्यूल को पुनः लोड करता है। यह उस स्थिति में काम आता है जहां आप एक इंटरैक्टिव सत्र के दौरान बार-बार एक परीक्षण स्क्रिप्ट चलाते हैं, यह हमेशा हमारे द्वारा विकसित किए जा रहे मॉड्यूल के पहले संस्करण का उपयोग करता है, यहां तक ​​कि हमने कोड में बदलाव भी किए हैं। उस परिदृश्य में हमें यह सुनिश्चित करने की आवश्यकता है कि मॉड्यूल पुनः लोड किए गए हैं।

रीलोड () को दिया गया तर्क एक मॉड्यूल ऑब्जेक्ट होना चाहिए जो पहले सफलतापूर्वक आयात किया गया हो।

सिंटैक्स

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 फ़ंक्शन फिर से लोड नहीं होता है

  • पुरानी वस्तुओं को तभी पुनः प्राप्त किया जाता है जब उनकी संदर्भ संख्या शून्य हो जाती है।

  • मॉड्यूल नेमस्पेस में नामों को नए ऑब्जेक्ट में बदल दिया जाता है, यदि कोई हो।

  • पुरानी वस्तुओं के अन्य संदर्भ (जैसे मॉड्यूल के बाहरी नाम) आवश्यक रूप से नई वस्तुओं को संदर्भित नहीं करते हैं और यदि आवश्यक हो तो उन्हें प्रत्येक नामस्थान में अद्यतन किया जाना चाहिए।


  1. पायथन गेटपास मॉड्यूल

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

  1. अन्य मॉड्यूल को कॉल करने से पायथन मॉड्यूल को कैसे प्रतिबंधित करें?

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

  1. मैं एक पायथन मॉड्यूल को कैसे अनलोड (पुनः लोड) करूं?

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