2010-04-11 15 views
11

में मेरे पास gui नामक पैकेज में अपने मॉड्यूल में विभिन्न जीयूआई कक्षाओं के साथ एक wxPython एप्लिकेशन है।सीधे पाइथन पैकेज के भीतर मॉड्यूल के अंदर कक्षाओं का खुलासा पैकेज के नामस्थान

from gui.mainwindow import MainWindow 

यह मेरे लिए गंदा देखा तो मैं सीधे पैकेज नेम स्पेस में वर्ग आयात करने के लिए gui पैकेज के लिए __init__.py फ़ाइल बदल:

इस स्थापना के साथ, मुख्य विंडो का आयात इस प्रकार की जाएगी

from gui import MainWindow 

यह बेहतर लग रहा है:

from mainwindow import MainWindow 

यह मुझे इस तरह मुख्य विंडो आयात करने के लिए अनुमति देता है मेरे लिए सौंदर्यशास्त्र और मुझे लगता है कि यह मैं जो भी कर रहा हूं उसका प्रतिनिधित्व करता हूं (gui "नेमस्पेस" से MainWindow कक्षा आयात करना)। gui पैकेज बनाने का कारण सभी जीयूआई सामान को एक साथ रखना था। मैं बस एक ही gui मॉड्यूल को आसानी से बना सकता था और इसमें सभी जीयूआई वर्गों को भर दिया था, लेकिन मुझे लगता है कि यह अप्रबंधनीय होगा। पैकेज अब मॉड्यूल की तरह काम करता प्रतीत होता है, लेकिन मुझे कक्षाओं को अपने मॉड्यूल (सहायक सहायक कार्यों के साथ) में अलग करने की अनुमति देता है।

यह पूरी चीज मुझे कुछ हद तक कमजोर करती है, मैंने सोचा कि मैं इसे बाहर फेंक दूंगा ताकि यह देखने के लिए कि दूसरों को इस विचार के बारे में क्या लगता है।

+0

ऐसा लगता है कि आप केवल टिप्पणियों के लिए पूछ रहे हैं, वास्तव में एक सवाल नहीं पूछ रहे हैं ... जो स्टैक ओवरफ्लो के लिए वास्तव में सही नहीं है। (हालांकि इसके लायक होने के लिए, मैं इस तरह की चीज को अक्सर देखता हूं और मुझे नहीं लगता कि इसमें कुछ भी गलत है) –

उत्तर

4

अच्छा, यह एक आम बात है और मुझे लगता है कि यह कारण है कि आप __init__.py फ़ाइलों के अंदर चीजें क्यों शामिल कर सकते हैं।
एक पुष्टिकरण के रूप में, __init__.py फ़ाइलों में आयात विवरणों के लिए बस grep, और आप देखेंगे कि यह मानक पुस्तकालय और सामान्य पैकेज दोनों में व्यापक रूप से उपयोग किया जाता है।

+0

आप सही हैं। मैंने बस WxPython की '__init __। Py' फ़ाइल को देखा और वे वही काम करते हैं। –

संबंधित मुद्दे