मान लें कि मुझे अपनी कंपनी के लिए कई छोटे से मध्यम पुस्तकालयों को लिखना है।लेखन पायथन पुस्तकालय: संरचना, नामकरण और सर्वोत्तम प्रथाओं का आयात
mycompany.mylibrary1.moduleA
mycompany.mylibrary1.moduleB.moduleD
mycompany.mylibrary2.moduleC
:
यह इस तरह निम्नलिखित संरचना को प्राप्त करने के रूप में मतलब है, एक pythonic रास्ते में, जावा दृष्टिकोण का उपयोग करने और एक आम उच्च स्तरीय पैकेज के साथ उन सभी को उपसर्ग (अहम, मॉड्यूल) या यह बेहतर बस के लिए जाने के लिए है:
mylibrary1.moduleA
mylibrary1.moduleB.moduleD
mylibrary2.moduleC
मुझे लगता है कि समय के सबसे अधिक 2 दृष्टिकोण प्रयोग किया जाता है, लेकिन मैं (या नहीं) एक पुष्टिकरण लिए देख रहा था कि जाने के लिए रास्ता नहीं है।
मैं PEP 008 में इस संबंध में कुछ भी नहीं मिला, बगल में:
अजगर के पुस्तकालय का नामकरण सम्मेलनों एक मेस का एक सा है, इसलिए हम कभी नहीं मिलेगा यह पूरी तरह से संगत [...]
और फिर हम केवल मॉड्यूल और वर्ग नामकरण संकेत है, साथ ही इस तथ्य है कि रिश्तेदार आयात हतोत्साहित किया जाता है मिलता है।
तथ्य यह है कि पूर्ण आयात आपके पुस्तकालयों को वास्तव में महत्वपूर्ण तरीके से व्यवस्थित करने का निर्णय लेने का तरीका है (और मैं यहां चर्चा करने के लिए नहीं हूं कि रिश्तेदार आयात से परहेज करना अच्छा या बुरा है)।
मुझे जावा दृष्टिकोण पसंद है जो आपके सभी पुस्तकालयों को नामित करता है, लेकिन मुझे लगता है कि यह पाइथनिक नहीं है ... जाने का सुझाया गया तरीका क्या है?
पीएस। सामान्य रूप से 'सर्वोत्तम अभ्यास' प्रश्नों को एसओ पर व्यक्तिपरक माना जाता है, पायथन में पीईपी का अस्तित्व उन्हें मेरी राय में बहुत ही उद्देश्य देता है! हालांकि उत्तर हो सकता है ... आपके पुस्तकालयों को व्यवस्थित करने के लिए सबसे अच्छा अभ्यास नहीं है ..
क्या आपने कभी पुस्तकालयों का उपयोग करने के लिए कंपनी के बाहर लोगों के लिए इरादा किया है? आप करते हैं, उन्हें 'mylibrary1' बनाना आसान है। अगर वे पूरी तरह से आंतरिक उपयोग के लिए हैं, तो' mycompany.mylibary1' का अर्थ है कि आप बाद में किसी और के 'mylibrary1' के साथ परेशानी में नहीं चल सकते हैं। –