2012-03-12 20 views
5

मैंने कई बार देखा कि आयात मोड कथन mod.something() पर कॉल से पहले कसकर रखा जा सकता है। हालांकि मैंने देखा कि आम तौर पर डेवलपर स्रोत फ़ाइल की शुरुआत में आयात विवरण डालते हैं। क्या इसके लिए कोई अच्छा कारण है?आयात विवरण का स्थान

मैं अक्सर विशेष रूप से कुछ मॉड्यूल से केवल कुछ फ़ंक्शंस का उपयोग करता हूं। फ़ंक्शन कॉल से पहले आयात कथन को कसकर रखने के लिए मुझे लगता है।

उदा।

# middle of the source file 
import mod 
mod.something() 

आप क्या सलाह देंगे और क्यों?

+8

पीईपी स्टाइल गाइड मॉड्यूल की शुरुआत में होने वाले सभी आयातों के लिए कॉल करता है। यह लोगों को यह जानने में आसान बनाता है कि पूरे स्रोत दस्तावेज़ के माध्यम से खोदने के बजाय आपके मॉड्यूल की निर्भरता क्या है। –

+2

[पीईपी 8] (http://www.python.org/dev/peps/pep-0008/) में "आयात" अनुभाग देखें। यह शैली का सवाल है, इसलिए ऐसा करने में संकोच न करें जो आपके लिए सबसे उपयोगी है, लेकिन ध्यान रखें कि आपके कोड के साथ काम करने वाले अन्य लोग आयात की उम्मीद कर सकते हैं। (बंद करने के लिए वोटिंग क्योंकि मुझे नहीं लगता कि इस सवाल का वास्तविक जवाब है।) –

+0

ठीक है। मैं समझता हूं, दोनों शैलियों के कारण हैं। मुझे और अधिक पसंद है जब मेरे पास शुरुआत में आयात का गुच्छा नहीं है, लेकिन ऐसा करने का कारण अच्छा कारण नहीं है। – xralf

उत्तर

6

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

+1

अच्छा कारण। असल में मैं कुछ मॉड्यूल से वास्तव में एक समारोह का उपयोग कर रहा हूं और इस तरह की शुरुआत कई छोटे सहायकों को आयात करने के साथ शुरू करने के बजाय – xralf

5

मई भी मेरी टिप्पणी यहां एक उत्तर के रूप में ले जाएं, हालांकि यह थोड़ा अनावश्यक लगता है।

पीईपी स्टाइल गाइड मॉड्यूल की शुरुआत में होने वाले सभी आयातों के लिए कॉल करता है। यह लोगों को यह जानने में आसान बनाता है कि पूरे स्रोत दस्तावेज़ के माध्यम से खोदने के बजाय आपके मॉड्यूल की निर्भरता क्या है।

एक चेतावनी के रूप में - दुर्लभ अवसर पर एक आयात एक त्रुटि का कारण बनता है (सर्कुलर आयात इस का सबसे अच्छा उदाहरण हैं) आप कुछ कार्यक्षमता का उपयोग करने से पहले तुरंत आयात कर सकते हैं। आम तौर पर बोलते हुए, यह बुरा रूप है। यदि आपको अपने मॉड्यूल के शीर्ष के अलावा कहीं और आयात करने की आवश्यकता है तो यह आमतौर पर डिज़ाइन दोष को इंगित करता है।

+0

आपका उत्तर सहायक है और परिणाम को और अधिक पूरा करता है, धन्यवाद। – xralf

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