मेरे पास पैकेज mypack
है जिसमें मॉड्यूल mod_a
और mod_b
है। मैं पैकेज ही है और mod_a
स्वतंत्र रूप से आयात किया जा करने का इरादा:पायथन: पैकेज में 'निजी' मॉड्यूल
import mypack
import mypack.mod_a
हालांकि, मैं mypack
के अनन्य उपयोग के लिए mod_b
रखना चाहते हैं। ऐसा इसलिए है क्योंकि यह केवल बाद के आंतरिक कोड को व्यवस्थित करने के लिए मौजूद है।
मेरा पहला सवाल यह है कि क्या यह पाइथन प्रोग्रामिंग में इस तरह के 'निजी' मॉड्यूल के लिए एक स्वीकार्य अभ्यास है?
यदि हां, मेरा दूसरा सवाल यह है कि क्लाइंट को इस इरादे को व्यक्त करने का सबसे अच्छा तरीका क्या है? क्या मैं अंडरस्कोर के साथ नाम उपसर्ग करता हूं (यानी _mod_b
)? या क्या उप-पैकेज private
घोषित करना और ऐसे सभी मॉड्यूल को रखने का अच्छा विचार होगा?
मैं इस पोस्ट में लगभग 6 साल बाद उसी प्रश्न और प्रेरणा के साथ आ रहा हूं जो आपके पास था। क्या निजी उप-पैकेज दृष्टिकोण अभी भी आपके द्वारा लिया गया है या आपने तब से अन्य दृष्टिकोणों की कोशिश की है? –
हां। मैं अभी भी इस विधि का उपयोग कर रहा हूँ। कोई बेहतर विकल्प नहीं मिला है। –
अद्यतन के लिए धन्यवाद और इस दृष्टिकोण को पहली जगह में सुझाव देने के लिए धन्यवाद। मैं "z" के साथ "निजी" उप-पैकेज नाम उपसर्ग करता हूं, ताकि यह आईडीई कोड-समापन ड्रॉपडाउन में अंतिम बार दिखाई दे। मैं केवल "सार्वजनिक" कार्यों का पर्दाफाश करने के लिए उप-पैकेज के '__init __। Py' में सापेक्ष आयात का उपयोग करता हूं। PyCharm और Jupyter में, ड्रॉपडाउन से आंतरिक मॉड्यूल के नाम रखने के लिए, प्रत्येक मॉड्यूल में मॉड्यूल के समान नाम के साथ एक फ़ंक्शन होना चाहिए, और मुझे '__init __। Py' में फ़ंक्शन आयात करना होगा। आप शायद यह सब पहले से ही जानते हैं लेकिन यदि यहां नहीं है तो यह है। अगर आप मुझे जवाब के रूप में विस्तार करना चाहते हैं तो बस मुझे बताएं। –