मैं पाइथन सीख रहा हूं, और हमेशा के रूप में, मैं अपने स्टार्टर परियोजनाओं के साथ महत्वाकांक्षी हूं। मैं ऐप इंजन के लिए एक सामुदायिक साइट टूलकिट के लिए प्लगइन सिस्टम पर काम कर रहा हूं। मेरी प्लगइन सुपरक्लास में install_path
नामक एक विधि है। मैं के लिए के लिए __path__
प्राप्त करना चाहता हूं (जो इस मामले में सबक्लास होगा)। समस्या यह है कि, __module__
मॉड्यूल इंस्टेंस के बजाए str
देता है। eval()
अविश्वसनीय और अवांछनीय है, इसलिए मुझे वास्तविक मॉड्यूल इंस्टेंस पर अपने हाथों को प्राप्त करने का एक अच्छा तरीका चाहिए जिसमें eval
str
को शामिल नहीं किया गया है, मैं __module__
से वापस आ गया हूं।पायथन में कक्षा के लिए मॉड्यूल उदाहरण कैसे प्राप्त करूं?
10
A
उत्तर
11
sys.modules
dict सभी आयातित मॉड्यूल शामिल है, तो आप उपयोग कर सकते हैं: अगर सब आप चाहते हैं मॉड्यूल के पथ है
mod = sys.modules[__module__]
1
कैसे import X
तरह Importing modules के बारे में
X = __import__(‘X’)
काम करता है, अंतर यह है कि आप 1) स्ट्रिंग के रूप मॉड्यूल का नाम गुजरती हैं, और 2) के साथ स्पष्ट रूप से अपने वर्तमान नाम स्थान में एक चर लिए असाइन करें।
आप मॉड्यूल नाम ('एक्स' के बजाय) पास कर सकते हैं और मॉड्यूल उदाहरण वापस प्राप्त कर सकते हैं। पायथन यह सुनिश्चित करेगा कि आप एक ही मॉड्यूल को दो बार आयात न करें, इसलिए आपको उस उदाहरण को वापस लेना चाहिए जिसे आपने पहले आयात किया था।
1
वैकल्पिक रूप से, आप मॉड्यूल के वैश्विक __file__
variable उपयोग कर सकते हैं।
संबंधित मुद्दे
- 1. पायथन में कक्षा के लिए फ़ाइलपैथ कैसे प्राप्त करूं?
- 2. मैं पायथन में मॉड्यूल कैसे दस्तावेज़ करूं?
- 3. एक्शनस्क्रिप्ट 3 में क्लास ऑब्जेक्ट में कक्षा के उदाहरण से मैं कैसे प्राप्त करूं?
- 4. एक पायथन मॉड्यूल के 2 अलग-अलग उदाहरण प्राप्त करें
- 5. मैं एक पायथन कक्षा (उदाहरण के लिए नहीं)
- 6. रूबी में कक्षा के उदाहरण कैसे प्राप्त करें?
- 7. पायथन: मॉड्यूल के अंदर एक मॉड्यूल का संदर्भ कैसे प्राप्त करूं?
- 8. मैं एनएसएसटींग से कक्षा कैसे प्राप्त करूं?
- 9. पायथन में __main__ मॉड्यूल के फ़ाइल नाम कैसे प्राप्त करें?
- 10. मैं पायथन में एक तृतीय पक्ष मॉड्यूल कैसे आयात करूं?
- 11. पायथन: मैं कक्षा सजावट के अंदर से सजाए गए वर्ग के उदाहरण का उपयोग कैसे करूं?
- 12. मैं पायथन मैकेनाइजेशन मॉड्यूल में इतिहास कैसे अक्षम करूं?
- 13. पायथन एक कक्षा में केवल एक मॉड्यूल आयात करें
- 14. कक्षा कक्षा - उदाहरण बनाम कक्षा के तरीके
- 15. मॉड्यूल से कक्षा का नाम प्राप्त करें
- 16. पायथन: कक्षा विशेषताओं और उदाहरण विशेषताओं
- 17. पायथन: किसी अन्य वर्ग में कक्षा का उदाहरण बनाएं (सामान्य उदाहरण के साथ)
- 18. "सिर्फ एक उदाहरण" के लिए पाइथन कक्षा बनाना?
- 19. स्थिर तरीकों के लिए काम करने के लिए मॉड्यूल मिश्रित कैसे प्राप्त करूं?
- 20. PHP में, मैं डिफ़ॉल्ट पीडीओ प्राप्त कक्षा कैसे सेट करूं?
- 21. मॉड्यूल के अंदर कक्षा के लिए कारखानों को परिभाषित करना
- 22. पायथन में एक उदाहरण के लिए मैं एक संपत्ति कैसे आवंटित करूं?
- 23. पायथन में अंतर्निहित मॉड्यूल की सूची कैसे प्राप्त करें?
- 24. उदाहरण के लिए उदाहरण प्राप्त करें-आईडी
- 25. मैं कक्षा के सामान्य प्रकार को प्राप्त करने के लिए एक आंतरिक वर्ग कैसे प्राप्त करूं?
- 26. मॉड्यूल के बिना सिर्फ कक्षा का नाम प्राप्त करें, आदि
- 27. एक्सएएमएल में कक्षा का उदाहरण कैसे बनाएं?
- 28. विशिष्ट पायथन मॉड्यूल में चर की सूची कैसे प्राप्त करें?
- 29. कक्षा के उदाहरण के साथ जावा उदाहरण
- 30. कक्षा विधि को लपेटने के लिए मॉड्यूल?
अच्छा, यह काम करता प्रतीत होता है। मैं थोड़े से एक क्लीनर समाधान की उम्मीद कर रहा हूं, लेकिन अगर कुछ और नहीं आता है, तो मैं इसे स्वीकार करूंगा। –
ध्यान दें कि यदि आप '__import __ ('foo.bar') करते हैं, तो यह' foo.bar' नहीं होगा, 'foo'bar' वापस करेगा। विवरण के लिए '__import__' दस्तावेज़ देखें। –
वैसे, लुकास का समाधान बहुत बेहतर क्यों है, इसके कुछ अच्छे कारण हैं। –