2011-10-20 4 views
7

मैं एक परियोजना का निर्माण कर रहा हूँ और मैं निम्नलिखित समस्या में पड़ गए हैं में बनाए रखने कोड। शब्दार्थ वे एक ही मॉड्यूल में एक साथ जाना चाहिए और मैं उन्हेंपायथन:</p> <p>मैं लागू कर दिया है कई उपवर्गों, उनमें से प्रत्येक कोड के 250 के बारे में लाइनों होने: मॉड्यूल

from mymodule import SubclassA, SubclassB 

लेकिन तब मेरी मॉड्यूल फ़ाइल है लाइनों के हजारों है, जो अपने कोड बहुत बुरा बनाए रखने बनाता है के साथ आयात करना चाहते हैं। अब मैं एक अलग फाइल में प्रत्येक वर्ग यह आसान बनाए रखने के लिए बनाने के लिए है, लेकिन मैं इस तरह इसका इस्तेमाल करने के लिए है:

from subclassa import SubclassA 
from subclassb import SubclassB 

यह किसी भी मतलब नहीं है और यह वास्तव में भयानक है।

क्या कोई सुरुचिपूर्ण समाधान है? यदि नहीं, उपर्युक्त में से कौन सा बेहतर समाधान है?

+1

शायद आपको एक पैकेज की आवश्यकता है: http://docs.python.org/tutorial/modules.html (6.4) – danihp

+0

"हजारों लाइनें, जो इसके कोड को बहुत खराब बनाती हैं"? वास्तव में? क्यूं कर? क्या आप अपनी वास्तविक समस्या के बारे में अधिक विशिष्ट हो सकते हैं? –

उत्तर

5

आप अपनी दूसरी लिस्टिंग में दिखाए गए अनुसार अपने पैकेज के __init__.py में हमेशा from subclassa ... आयात डाल सकते हैं। फिर, वे आपकी पहली सूची में लिखे गए अनुसार सीधे आपके पैकेज से उपलब्ध होंगे।

+0

बहुत बहुत धन्यवाद! वह काम किया। आखिरकार मैंने अपनी '__init __। Py' फ़ाइल में आयात के साथ एक पैकेज बनाया। –

1

मैं अलग-अलग फ़ाइलों के साथ दूसरा समाधान पसंद करता हूं। आयात उस भयानक नहीं हैं।

यदि वे आपको बहुत परेशान करते हैं, तो आप उन्हें एक और फ़ाइल में समाहित कर सकते हैं, और उसके बाद उस फ़ाइल से सभी कक्षाओं को दूसरी बार आयात कर सकते हैं। तो आपका मुख्य आयात पहले समाधान की तरह दिखेगा, लेकिन mymodule फ़ाइल की एकमात्र सामग्री दूसरे समाधान में कोड होगी।

0

आप उनके संबंधित फाइलों से mymodule मॉड्यूल के भीतर दोनों वर्गों आयात कर सकते हैं:

import SubclassA, SubclassB 

और उसके बाद अन्य परियोजनाओं के भीतर आप बस इस मॉड्यूल से इन कक्षाओं में आयात कर सकते हैं:

from mymodule import SubclassA, SubclassB 

मुझे अगर जानते हैं यह वही है जो आप खोज रहे हैं।

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