from Tkinter import *
टिनटर में आपके वर्तमान नामस्थान में प्रत्येक खुला वस्तु आयात करता है। import Tkinter
अपने नाम स्थान में "नाम स्थान" Tkinter आयात करता है और import Tkinter as tk
ही करता है, लेकिन 'टी' के लिए स्थानीय स्तर पर "का नाम बदलता है" यह आप
, बी टाइप मान लीजिए कि हम एक मॉड्यूल foo डालते हैं कक्षाएं एक से युक्त, को बचाने के लिए , और सी
फिर import foo
आपको foo.A, foo.B, और foo.C तक पहुंच प्रदान करता है।
जब आप import foo as x
करते हैं तो आपके पास भी उन तक पहुंच है, लेकिन नाम x.A, x.B, और x.C. from foo import *
अपने वर्तमान नाम स्थान में सीधे एक आयात करेगा, बी, और सी, ताकि आप उन्हें ए, बी के साथ उपयोग कर सकते हैं, और सी
वहाँ भी है from foo import A, C
जो ए और सी आयात करेगा, लेकिन अपने वर्तमान में बी नहीं नाम स्थान।
आप from foo import B as Bar
भी कर सकते हैं, जो बी को बार (आपके वर्तमान नामस्थान में) नाम के तहत उपलब्ध कराएगा।
तो आम तौर पर: जब आप मॉड्यूल का केवल एक ऑब्जेक्ट चाहते हैं, तो आप from module import object
या from module import object as whatiwantittocall
करते हैं।
जब आप कुछ मॉड्यूल कार्यक्षमता चाहते हैं, तो आप टाइपिंग को बचाने के लिए import module
, या import module as shortname
करते हैं।
from module import *
निराश हो गया है, क्योंकि आप गलती से छाया ("ओवरराइड") नाम डाल सकते हैं, और ट्रैक खो सकते हैं कि कौन सी वस्तुएं मॉड्यूल के हैं।
तो में चर्चा कारणों के लिए, यह अधिक प्रसंस्करण शक्ति ले करता है "आयात foo" का उपयोग करने के अगर मैं केवल वाला एक का उपयोग कर रहा हूँ कक्षा (उदाहरण के लिए कक्षा ए)। क्या मुझे इसके बजाय "foo आयात ए" से उपयोग करना चाहिए? या अंतर नगण्य है? बीटीडब्ल्यू, मेरे जैसे शुरुआती के लिए महान स्पष्टीकरण। धन्यवाद! –
आयात के बारे में प्रदर्शन चिंताओं ए) नगण्य और बी) अप्रासंगिक है। जो पाइथन कार्यान्वयन नहीं है, वह आपको सबसे अच्छा लगा। 'foo आयात ए' से बाद में लुकअप में तेज़ होता है जब आप ए का उपयोग करते हैं, लेकिन पाइथनिस्ट आमतौर पर ऐसी चीजों की परवाह नहीं करते हैं। – ch3ka