2012-09-25 19 views
6

क्या निम्नलिखित आयात विवरणों के प्रभावों के बीच कोई अंतर, सूक्ष्म या इतना सूक्ष्म नहीं है? मैंने दोनों उदाहरण प्रोग्रामों और निश्चित रूप से पर्याप्त रूप से उपयोग किए हैं, वे दोनों काम करने लगते हैं। यह पाइथन के अनाज के खिलाफ होगा "सामान करने का केवल एक ही तरीका है" अगर वे पूरी तरह से कार्य में समकक्ष थे, इसलिए मैं परेशान हूं। मैं सिर्फ पाइथन में शुरू कर रहा हूं और अच्छी आदतें रखने की कोशिश कर रहा हूं। तो उदाहरण के लिए, scipy पैकेज में लगाना मॉड्यूल के लिए ...पैकेज से मॉड्यूल आयात करने के लिए पाइथोनिक तरीका

from scipy import interpolate as spi 

या

import scipy.interpolate as spi 

दोनों SPI के रूप में वर्तमान नाम स्थान में लगाना मॉड्यूल डाल करने के लिए

उत्तर

0

यह वास्तव में स्वाद का विषय है।

इस विशेष मामले में, मैं import scipy.interpolate as spi का प्रयोग करेंगे, याद रखना होगा कि interpolatescipy की एक submodule है। अगर मैं मॉड्यूल से एक फ़ंक्शन आयात करना चाहता था, तो मैं from module import function का उपयोग करूंगा।

एकमात्र चीज है, जो आपके द्वारा चुने गए सम्मेलन के अनुरूप हो।

+0

मैं तरह का संस्करण "छोटे नाम के रूप में आयात package.module" पसंद करते हैं, लेकिन आश्चर्य है "पैकेज आयात मॉड्यूल से" यह सिफारिश करने के लिए कुछ भी नहीं था। मैं नहीं "मॉड्यूल आयात समारोह से" इसका नाम है या नहीं, के रूप में मैं अपने कोड में मॉड्यूल और समारोह नाम की दृश्यता को लेना पसंद है या नहीं। तो ऐसा लगता है कि "fullname के रूप में full_module_name आयात करें", भले ही full_module_name में पैकेज उपसर्ग है या नहीं, यह करने का लगातार तरीका है। मैं शॉर्टनाम के एक सतत सेट का उपयोग करता हूं, जो कई स्रोतों में फसल लग रहा है: - एनपी, एसपी, टीके, उदाहरण के लिए पीएलटी, numpy.random आदि के लिए npr –

10

नहीं दिखाई देते हैं, दो कथनों के बीच कोई अंतर नहीं है, दोनों सटीक उसी ऑब्जेक्ट को आपके मॉड्यूल नेमस्पेस (globals()) में सटीक उसी नाम के तहत रखते हैं।

वे इसके बारे में थोड़ा अलग तरीकों से जाते हैं लेकिन अंत परिणाम समान है।

अनिवार्य रूप से, पहले करता है:

from scipy import interpolate 
spi = interpolate 
del interpolate 

और दूसरा

import scipy.interpolate 
spi = scipy.interpolate 
del scipy 

करने के लिए नीचे आता है और अंत में सभी आपके पास spi नाम interpolate समारोह के लिए बाध्य है।

व्यक्तिगत रूप से, मुझे लगता है कि जैसे समारोह का नाम नहीं होगा, मैं इसे import scipy के रूप में रखने के लिए और scipy.interpolate का उपयोग करेंगे, स्पष्ट रूप से संवाद स्थापित करने, जहां वस्तु कोड, या मैं from scipy import interpolate प्रयोग करेंगे भर से आता है।

वस्तु का नाम बदल रहा यह आसान आप के लिए टाइप करने के लिए कर सकते हैं, लेकिन यह आप को या दूसरों को बाद में जब आप अनुपस्थिति के महीने के बाद इस कोड को फिर से मिलना पर grok करने के लिए कठिन हो सकता है।

+0

मुझे यह स्पष्ट करना चाहिए था कि इंटरपोलेट मॉड्यूल था, फ़ंक्शन नहीं। मैं च = spi.interp1d (का उपयोग करते हुए अंत में ... –

+0

@Neil_UK:। टिप्पणी अभी भी लागू होता है, मौसम यह एक मॉड्यूल या एक समारोह है :-) शब्दों समायोजित। –

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

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