अगर मैं module/
के एक इसी निर्देशिका के साथ एक मॉड्यूल मॉड्यूल परिभाषित करते हैं, मैं गतिशील ऐसे a.py
या b.py
के रूप में बच्चों मॉड्यूल से कक्षाओं लोड कर सकते हैं?आप किसी दिए गए निर्देशिका से पाइथन कक्षाओं को गतिशील रूप से कैसे लोड करते हैं?
--module
----a.py
----b.py
इस के लिए खोज करने के लिए वर्ग के नाम जानने आवश्यकता होती है? क्या मैं एक बेस क्लास स्थापित कर सकता हूं जो किसी भी तरह इन बच्चों को लोड करेगा?
मूल उपयोग केस उपयोगकर्ता को अपने स्वयं के कुछ कोड लिखने की इजाजत देता है ताकि कार्यक्रम लोड हो जाए। जैसे ही रेल कुछ निर्देशिकाओं में आपके स्वयं के नियंत्रक, विचार और मॉडल लिखने की अनुमति देते हैं।
मॉड्यूल लोड करने के लिए कोड को गतिशील मैं अब तक
def load(folder):
files = {}
for filename in os.listdir(folder):
if (filename[0] != '_' and filename[0] != '.'):
files[filename.rstrip('.pyc')] = None
# Append each module to the return list of modules
modules = []
mod = __import__(folder, fromlist=files.keys())
for key in files.keys():
modules.append(getattr(mod, key))
return modules
मैं कक्षा वस्तुओं वापस जाने के लिए इसे संशोधित करने की उम्मीद कर रहा था है।
आप अन्य [एसई सवाल] को चेक करते हैं (http://stackoverflow.com/प्रश्न/1 9 3161/व्हाट-द-द-बेस्ट-प्रोजेक्ट-स्ट्रक्चर-फॉर-ए-पायथन-एप्लिकेशन) पाइथन मॉड्यूल डेटा स्ट्रक्चर के बारे में, तीसरा उत्तर एक बहुत अच्छा छोटा जवाब देता है। मुझे लगता है कि आप कुछ ऐसा कर सकते हैं: 'मॉड्यूल आयात से' गतिशील रूप से। – Zenon