दिलचस्प पोस्ट
बंडल इंस्टॉल SSL प्रमाणपत्र सत्यापन त्रुटि के साथ विफल रहता है पायथन में एक सूची में एक सूची डालने के लिए वाक्यविन्यास क्या है? PHP में फ़ोन नंबर फ़ॉर्मेट करना जावा प्रोजेक्ट में एक्लिप्स डिफ़ॉल्ट प्रोजेक्ट को कैसे बदलना है क्या एक 'स्थिति: निश्चित' (हमेशा शीर्ष पर) div करने के लिए सरल jQuery तरीका क्या है? WPF: एक घटना के साथ स्लाइडर जो एक उपयोगकर्ता ड्रैग के बाद ट्रिगर करता है संयुक्त राष्ट्र के एक दल ने एक git submodule क्या किसी प्रोग्राम को एक विशेष संपादन पाठ के लिए एक स्क्रॉल व्यू स्क्रॉल करने का एक तरीका है? एचडीएफएस के बजाय स्थानीय फाइल को कैसे लोड करें FancyBox 2.0 का प्रयोग करते समय मैं शीर्षक टैग से होवर पर टूलटिप कैसे छुपाऊं? एक वास्तविक (निश्चित / अस्थायी बिंदु) मूल्य को दबाना सबसे तेज़ तरीका है? onClick मोबाइल (टच) पर काम नहीं कर रहा है कैसे एच का विकल्प पॉप्यूलेट करें: डेटाबेस से चयन करेंमेनमेन्यू? सिद्धांत में fetch = "EAGER" और fetch = "LAZY" के बीच अंतर क्या है ग्रेड टेस्ट निर्भरता

एक ही निर्देशिका या उप निर्देशिका के भीतर वर्ग को कैसे आयात करें?

मेरे पास एक निर्देशिका है जो सभी .py फ़ाइलों को संग्रहीत करता है

bin/ main.py user.py # where class User resides dir.py # where class Dir resides 

मैं main.py में users.py और dir.py से कक्षाओं का उपयोग करना चाहता हूं
मैं इन पायथन कक्षाओं को main.py में कैसे आयात कर सकता हूं?
इसके अलावा, अगर मैं user.py एक उप निर्देशिका में है तो मैं क्लास User कैसे आयात कर सकता हूं?

 bin/ dir.py main.py usr/ user.py 

वेब के समाधान से एकत्रित समाधान "एक ही निर्देशिका या उप निर्देशिका के भीतर वर्ग को कैसे आयात करें?"

पायथन 2

फ़ाइलों के रूप में एक ही निर्देशिका में __init__.py नामक एक खाली फ़ाइल बनाइए। वह अजगर को इंगित करेगा कि यह "इस निर्देशिका से आयात करना ठीक है"।

तो बस करो …

 from user import User from dir import Dir 

अगर एक __init__.py में फाइलें होती हैं तो वही सही होती है- उप-डायरेक्टरी में एक __init__.py डालते हैं, और फिर नियमित आयात स्टेटमेंट का इस्तेमाल करते हैं, डॉट नेशन के साथ। निर्देशिका के प्रत्येक स्तर के लिए, आपको आयात पथ में जोड़ना होगा।

 bin/ main.py classes/ user.py dir.py 

इसलिए यदि निर्देशिका का नाम "वर्ग" था, तो आप ऐसा करेंगे:

 from classes.user import User from classes.dir import Dir 

पायथन 3

पिछले के समान, लेकिन एक के साथ मॉड्यूल का नाम उपसर्ग . यदि कोई उपनिर्देशिका का उपयोग न करें:

 from .user import User from .dir import Dir 

मैं बस ( मार्टिनेऊ की टिप्पणी के लिए धन्यवाद) सीखा है, ताकि एक ही निर्देशिका में फाइलों से क्लाइंट आयात करने के लिए, आप अब पायथन 3 में लिखेंगे:

 from .user import User from .dir import Dir 

अपने main.py :

 from user import Class 

जहां Class उस Class का नाम है जिसे आप आयात करना चाहते हैं

यदि आप Class की किसी विधि को कॉल करना चाहते हैं, तो आप इसका उपयोग करके कॉल कर सकते हैं:

Class.method

ध्यान दें कि एक ही निर्देशिका में खाली __init__.py फ़ाइल होना चाहिए।

यह समझने में अधिक सरल बनाने के लिए:

चरण 1: एक निर्देशिका में जा सकते हैं, जहां सभी शामिल होंगे

 $ cd /var/tmp 

चरण 2: अब एक class1.py फ़ाइल बनाने की सुविधा है जिसमें कुछ कोड के साथ क्लास 1 कक्षा का नाम है

 $ cat > class1.py <<\EOF class Class1: OKBLUE = '\033[94m' ENDC = '\033[0m' OK = OKBLUE + "[OK]: " + ENDC EOF 

चरण 3: अब एक class2.py फ़ाइल बनाने में मदद करें, जिसमें कुछ कोड के साथ क्लास 2 कक्षा नाम है

 $ cat > class2.py <<\EOF class Class2: OKBLUE = '\033[94m' ENDC = '\033[0m' OK = OKBLUE + "[OK]: " + ENDC EOF$ touch main.py 

चरण 4: अब एक main.py बनाने की सुविधा देता है जो कि 2 अलग-अलग फ़ाइलों से कक्षा 1 और कक्षा 2 का उपयोग करने के लिए एक बार निष्पादित होगा

 $ cat main.py """this is how we are actually calling class1.py and from that file loading Class1""" from class1 import Class1 """this is how we are actually calling class2.py and from that file loading Class2""" from class2 import Class2 print Class1.OK print Class2.OK 

चरण 5: सेब काट

 $ python main.py will now use class1 and class2 

आप मॉड्यूल आयात कर सकते हैं और अपने नाम के माध्यम से पहुंच सकते हैं यदि आप फ़ंक्शन और कक्षाओं को अपने साथ मिश्रण नहीं करना चाहते हैं

 import util // imports util.py util.clean() util.setup(4) 

या आप अपने कोड में कार्य और कक्षाएं आयात कर सकते हैं

 from util import clean, setup clean() setup(4) 

आप अपने कोड के लिए उस मॉड्यूल में सब कुछ आयात करने के लिए वाइल्डचर * का उपयोग कर सकते हैं

 from util import * clean() setup(4) 
 from user import User from dir import Dir 

बस बहुत संक्षेप में, एक फ़ाइल बनाएं __init__.py कक्षाओं की निर्देशिका है और फिर इसे अपनी स्क्रिप्ट में निम्न की तरह आयात करें

 from classes.myscript import *