इंपोर्टलिब पैकेज किसी भी पायथन दुभाषिया के लिए पोर्टेबल पायथन स्रोत कोड में आयात विवरण के कार्यान्वयन को प्रदान करता है। यह एक कार्यान्वयन भी प्रदान करता है जिसे पायथन के अलावा किसी अन्य प्रोग्रामिंग भाषा में लागू किए गए एक से समझना आसान है।
यह पैकेज आयात को लागू करने के लिए घटकों को भी उजागर करता है, जिससे उपयोगकर्ताओं के लिए आयात प्रक्रिया में भाग लेने के लिए अपने स्वयं के कस्टम ऑब्जेक्ट (एक आयातक के रूप में ज्ञात) बनाना आसान हो जाता है।
इंपोर्टलिब पैकेज का एक महत्वपूर्ण कार्य है जिसका नाम है import_module()
import_module():
यह फ़ंक्शन प्रोग्राम के रूप में एक मॉड्यूल आयात करता है। मॉड्यूल का नाम फ़ंक्शन का पहला पैरामीटर है। वैकल्पिक दूसरा पैरामीटर पैकेज नाम निर्दिष्ट करता है यदि कोई हो।
अमान्य_कैश ():
यह फ़ंक्शन खोजकर्ताओं के आंतरिक कैश को अमान्य करता है। इस फ़ंक्शन को कॉल किया जाना चाहिए यदि कोई मॉड्यूल बनाया / स्थापित किया गया है, जबकि आपका प्रोग्राम चल रहा है, यह गारंटी देने के लिए कि सभी खोजकर्ता नए मॉड्यूल के अस्तित्व को नोटिस करेंगे।
पुनः लोड ():
यह फ़ंक्शन पहले से आयातित मॉड्यूल को पुनः लोड करता है। यह उपयोगी है यदि आपने बाहरी संपादक का उपयोग करके मॉड्यूल स्रोत फ़ाइल को संपादित किया है और पायथन इंटरप्रेटर को छोड़े बिना नए संस्करण को आज़माना चाहते हैं।
उदाहरण:
नीचे दिए गए कोड के समान मॉड्यूल1.py और मॉड्यूल2.py नामक दो पायथन स्क्रिप्ट बनाएं:
#module1
def main():
print ('module imported', __name__)
return
if __name__=='__main__':
main() अब हम इन मॉड्यूल को इम्पोर्टलिब पैकेज का उपयोग करके गतिशील रूप से आयात करते हैं।
>>> import importlib
>>> mod=importlib.import_module('module1')
>>> mod.__name__
'module1'
>>> mod=importlib.import_module('module2')
>>> mod.__name__
'module2'
>>> mod.main()
module imported module2
>>> इंपोर्टलिब पैकेज में निम्नलिखित सबमॉड्यूल शामिल हैं:
importlib.abc
इस मॉड्यूल में आयात द्वारा उपयोग किए जाने वाले सभी मूल सार आधार वर्ग शामिल हैं। कोर एब्सट्रैक्ट बेस क्लास के कुछ उपवर्ग भी कोर एबीसी को लागू करने में मदद करने के लिए प्रदान किए जाते हैं
importlib.resources
यह मॉड्यूल पैकेज के भीतर संसाधनों तक पहुंच प्रदान करने के लिए पायथन की आयात प्रणाली का लाभ उठाता है।
importlib. Machinery
इस मॉड्यूल में विभिन्न ऑब्जेक्ट हैं जो मॉड्यूल को खोजने और लोड करने में आयात करने में मदद करते हैं।
importlib.util
इस मॉड्यूल में आयातकों के लिए उपयोगिता कोड है। इसमें विभिन्न वस्तुएं शामिल हैं जो एक आयातक के निर्माण में मदद करती हैं। इसमें निम्नलिखित महत्वपूर्ण कार्यों को परिभाषित किया गया है।
find_spec():
यह फ़ंक्शन निर्दिष्ट पैकेज नाम के सापेक्ष मॉड्यूल के लिए विनिर्देशों को ढूंढता है। यदि नाम एक सबमॉड्यूल के लिए है (एक बिंदु है), तो मूल मॉड्यूल स्वचालित रूप से आयात किया जाता है। नाम और पैकेज इम्पोर्ट_मॉड्यूल () के समान ही काम करते हैं।
module_from_spec(spec)
कल्पना और spec.loader.create_module के आधार पर एक नया मॉड्यूल बनाएं।
उदाहरण:
import importlib.util
def check_module(mod):
spec = importlib.util.find_spec(mod)
if spec is None:
print('Module: {} not found'.format(mod))
return None
else:
print('Module: {} can be imported!'.format(mod))
return spec
def import_module(spec):
mod = importlib.util.module_from_spec(spec)
spec.loader.exec_module(mod)
return mod
if __name__ == '__main__':
spec = check_module('notamodule')
spec = check_module('module1')
if spec:
mod = import_module(spec)
mod.main() आउटपुट:
Module: notamodule not found Module: module1 can be imported! module imported module1