पीईपी 8 कहता है:
- आयात हमेशा फ़ाइल के शीर्ष पर, किसी भी मॉड्यूल टिप्पणियों और docstrings के बाद, और मॉड्यूल ग्लोबल्स और स्थिरांक से पहले किया जाता है।
रोके जाने पर, मैं PEP 8 का उल्लंघन करता हूं। कुछ बार मैं फ़ंक्शन के अंदर सामान आयात करता हूं। एक सामान्य नियम के रूप में, मैं ऐसा करता हूं यदि कोई आयात होता है जो केवल एक फ़ंक्शन के भीतर उपयोग किया जाता है।
कोई राय?
EDIT (कारण जो मुझे लगता है कि फ़ंक्शंस में आयात करना एक अच्छा विचार हो सकता है):
मुख्य कारण: यह कोड को स्पष्ट कर सकता है।
- जब मैं किसी फ़ंक्शन का कोड देख रहा हूं तो मैं खुद से पूछ सकता हूं: "फ़ंक्शन / क्लास xxx क्या है?" (xxx फ़ंक्शन के अंदर उपयोग किया जा रहा है)। यदि मॉड्यूल के शीर्ष पर मेरे सभी आयात हैं, तो मुझे यह देखने के लिए वहां जाना होगा कि xxx क्या है। उपयोग करते समय यह एक समस्या का अधिक है
from m import xxx
।m.xxx
फंक्शन में देखना शायद मुझे और बताता है। इस पर निर्भर करताm
है: क्या यह एक प्रसिद्ध शीर्ष-स्तरीय मॉड्यूल / पैकेज (import m
) है? या यह एक उप-मॉड्यूल / पैकेज (from a.b.c import m
) है? - कुछ मामलों में उस अतिरिक्त जानकारी ("xxx क्या है?") के पास जहां xxx का उपयोग किया जाता है, फ़ंक्शन को समझना आसान बना सकता है।