Thursday 15 March 2012

python - Self import of subpackages or not? -


मान लें कि आपके पास निम्न है

  bb / __ init__.py b / cb / c / कुछ Python संकुल में, यदि आप  import b , आप केवल प्रतीकों को परिभाषित करते हैं बी में। बी को एक्सेस करने के लिए, आपको स्पष्ट रूप से  import b.c  या  b आयात c  से जाना होगा। दूसरे शब्दों में, आपको 

  import b import b.c import b.c.d प्रिंट b.c.d  

करना होगा अन्य मामलों में मैंने सभी उपपैकेजों का स्वचालित आयात देखा है इसका मतलब यह है कि निम्नलिखित कोड में त्रुटि उत्पन्न नहीं होती

  import b print bcd  

क्योंकि b / __ init __। Py लेता है अपने उपपैकेजों को आयात करने की देखभाल मैं सबसे पहले पसंद करता हूं (अंतर्निहित से स्पष्ट बेहतर), और मैं हमेशा इसका इस्तेमाल करता था, लेकिन क्या ऐसे मामले हैं जहां दूसरे को पहली बार प्राथमिकता दी जाती है?

मुझे नामस्थान पसंद है - इसलिए मुझे लगता है कि import b को केवल मिलना चाहिए जो कि b में है (संभवत: b / __ init __। Py में)। अगर बीसी , बीसीडी , या जो कुछ भी अन्य कार्यक्षमता को अलग करने का कोई कारण है, तो बस import b इसे सभी में नहीं खींचना चाहिए - यदि "इसे सभी में खींचें" ऐसा होता है, मुझे लगता है कि पता चलता है कि नेमस्पेस जुदाई संभवतः एक फर्जी है जो कि शुरू से ही हो। बेशक, मानक पुस्तकालय ( import os में भी उदाहरण हैं, तब आप os.path.join और पसंद कर सकते हैं), लेकिन वे प्राचीन हैं, अब पायथन पैकेजिंग सिस्टम परिपक्व और स्थिर होने से पहले मूल रूप से "ग्रैंडफिल्ड" चीजों की तरह। नए कोड में, जब आप इसे आयात करते हैं, तो मुझे दृढ़ता से सुझाता है कि किसी पैकेज को नहीं को उसके उपपैकेजों को सवारी के लिए खींचना चाहिए। ( इस को पायथन प्रोम्प्ट पर आयात करें और यह बहुत अंतिम पंक्ति को दिखाता है; -)।


No comments:

Post a Comment