2011-09-02 14 views
72

मैं पायथन के multiprocessing मॉड्यूल के लिए कोड पर देख रहा हूँ, और यह इस लाइन में शामिल हैं:ए क्या करता है। पायथन में एक आयात वक्तव्य में मतलब है?

from ._multiprocessing import win32, Connection, PipeConnection 

बजाय

from _multiprocessing import win32, Connection, PipeConnection 

सूक्ष्म अंतर _multiprocessing से पहले की अवधि में किया जा रहा। इसका क्या मतलब है? अवधि क्यों?

+2

इसे सापेक्ष आयात कहा जाता है: http://docs.python.org/tutorial/modules.html – Aillyn

+0

'.' के बिना, अगर आपके पास अपनी मुख्य स्क्रिप्ट के बगल में कुछ अनिश्चित कारणों के लिए फ़ाइल '_multiprocessing.py' है, 'मल्टीप्रोसेसिंग' टूट जाएगा। '.' के साथ, यह सुनिश्चित करता है कि यह अपना मॉड्यूल प्राप्त करे। –

+2

उपयोगी सवाल !! –

उत्तर

65

यह स्पष्ट relative imports के लिए नया वाक्यविन्यास है। इसका मतलब है वर्तमान पैकेज से आयात।

+7

क्या परिभाषित करता है कि "वर्तमान पैकेज" क्या है? – fraxture

+2

यह कहना चाहिए * जहां से आयात पैकेज है *। इसका मूल रूप से वर्तमान नामस्थान या पैकेज निर्देशिका का अर्थ है। – Keith

+0

धन्यवाद, मुझे लगता है कि मुझे पता है कि आपका क्या मतलब है। बस स्पष्ट होने के लिए, क्या आप एक उदाहरण प्रदान करना चाहते हैं? – fraxture

16

मॉड्यूल नाम में डॉट सापेक्ष मॉड्यूल आयात के लिए उपयोग किया जाता है (देखें here और here, खंड 6.4.2)।

आप एक से अधिक बिंदुओं का उपयोग कर सकते हैं, जो इलाज पैकेज नहीं बल्कि इसके माता-पिता को संदर्भित करते हैं। इसका उपयोग केवल पैकेज के भीतर किया जाना चाहिए, मुख्य मॉड्यूल में हमेशा एक पूर्ण मॉड्यूल नामों का उपयोग करना चाहिए।

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