python - Import object from module of same name using __import__ -
मेरे पास निर्देशिका संरचना है जो निम्न प्रकार है:
root / __main__.py files / __init__ .py foo.py bar.py baz.py फ़ाइल के समान नाम के साथ प्रत्येक फ़ाइल में एक वस्तु है आप कल्पना कर सकते हैं कि रेखा foo = MyObj (1) फ़ूज़े में है और बार = मायऑज (2) bar.py में है, आदि।
root / files / में प्रत्येक फ़ाइल से नामित ऑब्जेक्ट आयात करने के लिए मेरे पास root / files / __ init __। Py में निम्न कोड है:
यहां, obj फ़्यू, बार, ... आदि मॉड्यूल और उन मॉड्यूल में निहित वस्तुओं नहीं रखता है।
प्रश्न:
मैं अपने __ आयात __ इनवॉइस को कैसे बदल सकता हूँ जैसे कि वह मॉड्यूल में निहित वस्तु वापस करेगा और मॉड्यूल में ही नहीं?
समाधान: ज>
मैंने पाया है कि वस्तु को निकालने के लिए मुझे getattr (obj, obj_name) कर सकते हैं।
आपको इसके बराबर कुछ कॉल करने की आवश्यकता है:
obj = __import __ (" mymod ", ...)। Mymod mymod आयात से mymod एक वस्तु का नाम उसके नाम से प्राप्त करना
का उपयोग करके किया जा सकता है < getattr (obj, 'mymod') # या obj .__ dict __ ['mymod'] # या वार्स (obj) ['mymod'] एक को चुनें (मुझे getattr के लिए जाना होगा अगर मुझे वास्तव में करना था)।
obj = getattr (__ आयात __ (mod_name, globals = globals (), स्थानीय = स्थानीय (), Fromlist = (obj_name), स्तर = 1), mod_name)
Comments
Post a Comment