अंगूठे का सामान्य नियम यह है कि आयात फ़ाइल के शीर्ष पर होना चाहिए , क्योंकि इससे कोड को आसानी से पालन करना आसान हो जाता है, और इससे यह पता लगाना आसान हो जाता है कि मॉड्यूल को सभी कोडों के बिना क्या आवश्यकता होगी।
अजगर शैली गाइड कैसे आयात दिखना चाहिए के लिए कुछ बुनियादी दिशा निर्देशों को शामिल किया गया: http://www.python.org/dev/peps/pep-0008/#imports
व्यवहार में, हालांकि, कई बार जब यह एक विशेष समारोह के भीतर से आयात करने के लिए समझ में आता है कर रहे हैं। यह आयात कि परिपत्र होगा के साथ आता है:
# Module 1
from module2 import B
class A(object):
def do_something(self):
my_b = B()
...
# Module 2
from module1 import A
class B(object):
def do_something(self):
my_a = A()
...
कि उसी रूप में काम नहीं करेगा, लेकिन आप घेरा चारों ओर आयात को ले जाकर मिल सकता है: आदर्श रूप में
# Module 1
from module2 import B
class A(object):
def do_something(self):
my_b = B()
...
# Module 2
class B(object):
def do_something(self):
from module1 import A
my_a = A()
...
, आप डिजाइन होगा कक्षाएं जैसे कि यह कभी नहीं आएगी, और शायद उन्हें एक ही मॉड्यूल में भी शामिल कर सकते हैं। उस खिलौने के उदाहरण में, प्रत्येक आयात को दूसरे को वास्तव में समझ में नहीं आता है। हालांकि, व्यावहारिक रूप से, कुछ ऐसे मामले हैं जहां विधि के भीतर एक विधि के लिए आयात को शामिल करने के बजाय, एक ही मॉड्यूल में सबकुछ फेंकने या किसी अन्य ऑब्जेक्ट को प्रश्न में निकालने के बजाय इसे अधिक समझ में आता है।
लेकिन, जब तक आपके पास विचलन करने का कोई अच्छा कारण न हो, मैं कहता हूं कि मॉड्यूल के शीर्ष-सम्मेलन के साथ जाना है।
अभी भी थोड़ा उलझन में है। किसी भी अपवाद को बुलाए जाने पर लोडर को बाहरी मॉड्यूल को वैसे भी लोड करना होगा? एकमात्र ओवरहेड मैं देख सकता हूं अपवाद में कोड की एक अतिरिक्त पंक्ति है। – tetris11
बस अपने कोड में स्पष्ट रहें, फ़ाइल के शीर्ष पर अपने आयात करें। –
@JakobBowyer लेकिन क्या अंतर है, प्रदर्शन के अनुसार मैं वास्तव में – tetris11