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

प्रोग्राम चलाते समय पायथन मॉड्यूल को पैकेज में डायनामिक रूप से कैसे जोड़ें?

पायथन मॉड्यूल को डायनामिक रूप से इम्पोर्ट करने के लिए, आप `importlib` पैकेज के `import_module(moduleName)` फ़ंक्शन का उपयोग कर सकते हैं। आपके पास `moduleName` स्ट्रिंग के रूप में होना चाहिए।

बुनियादी उदाहरण


>>> from importlib import import_module
>>> moduleName = "os"
>>> globals()[moduleName] = import_module(moduleName)

मॉड्यूल की सूची डायनामिक रूप से इम्पोर्ट करें


>>> import importlib
>>> modnames = ["os", "sys", "math"]
>>> for lib in modnames:
...     globals()[lib] = importlib.import_module(lib)

`globals()` कॉल एक डिक्ट लौटाता है। हम आयात किए गए मॉड्यूल पर लौटाए गए ऑब्जेक्ट के रूप में प्रत्येक लाइब्रेरी के लिए `lib` कुंजी सेट कर सकते हैं।

पैकेज से सबमॉड्यूल इम्पोर्ट करें

यदि आपने एक पैकेज इम्पोर्ट किया है और अब उसके मॉड्यूल में से एक को डायनामिक रूप से इम्पोर्ट करना चाहते हैं, तो आप अभी भी उसी फ़ंक्शन का उपयोग कर सकते हैं और अपेक्षित परिणाम प्राप्त कर सकते हैं। आप जिस मॉड्यूल को इम्पोर्ट करना चाहते हैं उसका पूरा नाम होना चाहिए न कि केवल मॉड्यूल नाम।


>>> import importlib
>>> pack = 'datetime'
>>> mod = 'date'
>>> globals()[pack] = importlib.import_module(pack)
>>> globals()[pack + '.' + mod] = importlib.import_module(pack + '.' + mod)

आधुनिक सर्वोत्तम अभ्यास (पायथन 3.7+)

importlib.import_module का उपयोग करें


import importlib

def dynamic_import(module_path: str):
    """डायनामिक रूप से मॉड्यूल इम्पोर्ट करें और लौटाएं।"""
    return importlib.import_module(module_path)

# उपयोग
os_module = dynamic_import('os')
date_class = dynamic_import('datetime.date')
requests = dynamic_import('requests')

वैकल्पिक: importlib.util (अधिक नियंत्रण)


import importlib.util
import sys

def load_module_from_path(module_name, file_path):
    """फ़ाइल पथ से मॉड्यूल लोड करें।"""
    spec = importlib.util.spec_from_file_location(module_name, file_path)
    module = importlib.util.module_from_spec(spec)
    sys.modules[module_name] = module
    spec.loader.exec_module(module)
    return module

# उपयोग
my_module = load_module_from_path('my_module', '/path/to/my_module.py')

सावधानियां

  • `globals()` में इंजेक्शन नेमस्पेस प्रदूषित कर सकता है - एक डिक्शनरी लौटाने पर विचार करें
  • त्रुटि संचालन: `ImportError`, `ModuleNotFoundError` पकड़ें
  • सुरक्षा: अविश्वसनीय इनपुट से डायनामिक इम्पोर्ट न करें
  • प्रदर्शन: बार-बार डायनामिक इम्पोर्ट धीमे होते हैं

उपयोग के मामले

  • प्लगइन आर्किटेक्चर
  • कॉन्फ़िगरेशन-चालित मॉड्यूल लोडिंग
  • आलसी लोडिंग (लेजी लोडिंग)
  • हॉट रीलोडिंग सिस्टम
  1. Android में डायनामिक रूप से Views को View में कैसे जोड़ें? Android में डायनामिक रूप से Views को View में कैसे जोड़ें?

    यह उदाहरण दर्शाता है कि Android में डायनामिक रूप से Views को View में कैसे जोड़ा जाए। डायनामिक Views जोड़ने का उदाहरण चरण 1 - नया प्रोजेक्ट बनाएं Android Studio में एक नया प्रोजेक्ट बनाएं: File → New Project पर जाएं और आवश्यक विवरण भरें। चरण 2 - लेआउट XML में कोड जोड़ें res/layout/activity_main.x

  1. Python Matplotlib में रनिंग स्क्रिप्ट के दौरान फिगर में हेरफेर कैसे करें? Python Matplotlib में रनिंग स्क्रिप्ट के दौरान फिगर में हेरफेर कैसे करें?

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

  1. Python में Matplotlib इम्पोर्ट करना Python में Matplotlib इम्पोर्ट करना

    सबसे पहले, सुनिश्चित करें कि आपके सिस्टम पर python और pip प्रीइंस्टॉल्ड हैं। Python संस्करण जांचने के लिए, टाइप करें: python --version pip संस्करण जांचने के लिए, टाइप करें: pip -V फिर, Matplotlib इंस्टॉल करने के लिए कमांड प्रॉम्प्ट में निम्नलिखित pip कमांड चलाएं: pip install matplotlib यह सत्यापि