python - What are the advantages and disadvantages of the require vs. import methods of loading code? -


रूबी की आवश्यकता का उपयोग करता है, पायथन import का उपयोग करता है। वे काफी अलग मॉडल हैं, और जब मैं की आवश्यकता मॉडल के लिए और अधिक उपयोग करता हूं, तो मुझे कुछ जगह मिल सकती है जहां मुझे लगता है कि मुझे यह पसंद है import अधिक। मैं उत्सुक हूँ कि लोग जो विशेष रूप से आसान-या अधिक दिलचस्प, इन मॉडलों में से प्रत्येक के साथ-साथ वे जितना कठिन हो।

विशेष रूप से, यदि आप एक नई प्रोग्रामिंग भाषा लिख ​​रहे थे, तो आप कैसे डिजाइन करेंगे एक कोड लोडिंग तंत्र? कौन सा "पेशेवर" और "विपक्ष" आपके डिजाइन पसंद पर सबसे भारी वजन होगा?

पायथन <कोड > आयात में एक प्रमुख विशेषता है जिसमें यह दो चीजों को एक साथ मिलती है - आयात कैसे प्राप्त करें और किस स्थान का नाम शामिल करने के लिए

यह बहुत स्पष्ट कोड बनाता है:

import xml.sax

यह निर्दिष्ट करता है कि हम किस कोड का उपयोग करना चाहते हैं, नियमों के अनुसार पायथन खोज पथ।

उसी समय, सभी वस्तुओं जो हम इस सटीक नेमस्पेस के नीचे रहने के लिए चाहते हैं, उदाहरण के लिए xml.sax.ContentHandler

< P> मैं इसे रूबी की आवश्यकता के लिए एक लाभ के रूप में मानता हूं। को 'xml' की आवश्यकता होती है, वास्तव में नाम स्थान के भीतर ऑब्जेक्ट बना सकता है XML या मॉड्यूल में उपलब्ध कोई अन्य नाम स्थान, बिना इसकी आवश्यकता से सीधे स्पष्ट हो।

यदि xml.sax.ContentHandler बहुत लंबा है, तो आयात करने पर आप एक अलग नाम निर्दिष्ट कर सकते हैं:

  x के रूप में एक्सएमएलएक्स आयात करें  < / Pre> 

और अब X.ContentHandler

के तहत avalable है इस तरह से पायथन को आपको प्रत्येक मॉड्यूल के नेमस्पेस का स्पष्ट रूप से निर्माण करने की आवश्यकता है। पायथन नेमस्पेस बहुत ही "भौतिक" हैं, और मैं इसका मतलब बताऊँगा:

  • डिफ़ॉल्ट रूप से, केवल सीधे ही मॉड्यूल में परिभाषित नाम इसके नाम स्थान में उपलब्ध हैं: फ़ंक्शंस, क्लासेस और ऐसा।
  • मॉड्यूल के नाम स्थान में जोड़ने के लिए, आप उन मॉडलों को स्पष्ट रूप से आयात करते हैं, जिन्हें आप जोड़ना चाहते हैं, उन्हें मौजूदा मॉड्यूल में "शारीरिक रूप से" (संदर्भ के अनुसार) डालकर।

उदाहरण के लिए, यदि हमारे पास आंतरिक पाइपथन पैकेज "प्रक्रिया" है तो आंतरिक कोडों के साथ मशीन और इंटरफ़ेस , और हम इसे पैकेज नाम के तहत सीधे एक सुविधाजनक नाम स्थान के रूप में प्रस्तुत करना चाहते हैं, यह है और हम "पैकेज परिभाषा" फ़ाइल प्रक्रिया / __ init __। Py :

  से process.interface import * से process.machine आयात मशीन में लिख सकते हैं का उदाहरण है , हेल्परमाचिन  

इस प्रकार हम ऊपर उठाते हैं जो आम तौर पर process.machine.Machine से प्रक्रिया के रूप में सुलभ हो जाते हैं। माइकिन । और हम सभी कोड को process.interface से प्रक्रिया नाम स्थान, एक बहुत ही स्पष्ट रूप से जोड़ते हैं।

पायथन के आयात के फायदे जो मैंने इसके बारे में लिखा था केवल दो:

  • स्पष्ट का उपयोग करते समय आप क्या शामिल करते हैं साफ़ करें आप अपने स्वयं के मॉड्यूल के नाम स्थान को संशोधित करें (प्रोग्राम के लिए या अन्य लोगों के लिए आयात करने के लिए)

Comments

Popular posts from this blog

c# - How to capture HTTP packet with SharpPcap -

php - Multiple Select with Explode: only returns the word "Array" -

jquery - SimpleModal Confirm fails to submit form -