.py
अपने आयात में विस्तार का उपयोग न करें ।
from 8puzzle import *
काम करता है ?
जो इसके लायक है, from x import *
वह एक पसंदीदा पायथन पैटर्न नहीं है, क्योंकि यह उस मॉड्यूल के नाम स्थान को आपके वर्तमान संदर्भ में उड़ा देता है।
सामान्य तौर पर, उन चीजों को आयात करने का प्रयास करें जिन्हें आप विशेष रूप से उस मॉड्यूल से चाहते हैं। अन्य मॉड्यूल से किसी भी वैश्विक आयात किया जा सकता है।
उदाहरण के लिए, यदि आपके पास 8puzzle.foo
8puzzle आयात से `कर सकता है
संपादित करें:
जबकि मेरा .py
संदेश सही है, यह पर्याप्त नहीं है।
दूसरे पोस्टर का __import__('8puzzle')
सुझाव सही है। हालांकि, मैं अत्यधिक इस पैटर्न से बचने की सलाह देता हूं ।
एक के लिए, यह एक आंतरिक, निजी पायथन विधि आरक्षित है। आप मूल रूप से बुनियादी धारणाओं को तोड़ रहे हैं कि इसका क्या मतलब है कि मॉड्यूल आयात करने में सक्षम होना चाहिए। बस फ़ाइल को किसी और चीज़ में बदलना, जैसे puzzle8
, यह उपाय करेगा।
यह अनुभवी पायथन प्रोग्रामर से नरक को बाहर निकाल देगा, जो यह जानने की उम्मीद कर रहे हैं कि आपके आयात शीर्ष पर हैं और कोड की उम्मीद कर रहे हैं (कोशिश करें) PEP8 के अनुरूप हैं ।