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