95%, आप फ़ाइल के शीर्ष पर अपने सभी आयात रखना चाहिए। एक मामला जहां आप एक समारोह-स्थानीय आयात करना चाहते हैं, यदि आपको सर्कुलर आयात से बचने के लिए ऐसा करना है। कहें f.py.py आयात करता है, और bar.py में एक फ़ंक्शन foo.py से कुछ आयात करने की आवश्यकता है। यदि आप अपने सभी आयात शीर्ष पर डालते हैं, तो आपको उन फ़ाइलों पर आयात करने में अप्रत्याशित समस्याएं हो सकती हैं जो अभी तक संकलित नहीं की गई जानकारी पर निर्भर हैं। इस मामले में, स्थानीय फ़ंक्शन स्थानीय आयात करने से आपके कोड को अन्य मॉड्यूल को आयात करने की अनुमति मिल सकती है जब तक कि उसका कोड पूरी तरह से संकलित नहीं हो जाता है, और आप प्रासंगिक फ़ंक्शन को कॉल करते हैं।
हालांकि, ऐसा लगता है कि आपका उपयोग-केस यह स्पष्ट करने के बारे में अधिक है कि foo() कहां से आ रहा है। इस मामले में, मैं अब तक दो चीजों में से एक पसंद करेंगे:
सबसे पहले, के बजाय
from prerequisite import foo
आयात शर्त सीधे, और बाद में prerequisite.foo ही कहते हैं। अतिरिक्त वर्बोजीटी कोड कोड पारदर्शिता के माध्यम से खुद को हुकुम में वापस भुगतान करती है।
वैकल्पिक रूप से, (या उपर्युक्त के साथ) यदि यह वास्तव में आपके आयात और स्थान के बीच इतनी लंबी दूरी है, तो यह हो सकता है कि आपका मॉड्यूल बहुत बड़ा हो। किसी आयात के लिए जो कुछ भी उपयोग नहीं करता है, वह उस स्थान का संकेत हो सकता है जहां आपका कोड अधिक प्रबंधनीय आकार के हिस्से में दोबारा काम करने के लिए खड़ा हो सकता है।
की संभावित डुप्लिकेट [अजगर - अगर में आयात] (http://stackoverflow.com/questions/12860841/python-import-in-if) – Abhijeet