मैंने पिछले कुछ दिनों में अजगर सीखना शुरू कर दिया है, और ऑब्जेक्ट उन्मुख प्रोग्रामिंग की खोज करते समय मैं समस्याओं में भाग रहा हूं। मैं pydev प्लगइन चलाते समय ग्रहण का उपयोग कर रहा हूं, पाइथन 3.3 बीटा पर चल रहा हूं, और विंडोज 64 बिट सिस्टम का उपयोग कर रहा हूं।पायथन में अन्य कक्षाओं को सही तरीके से कैसे बढ़ाया जाए? (पायथन v3.3)
मैं कक्षा के ठीक शुरू कर सकता हूं और इसके भीतर किसी भी तरीके का उपयोग कर सकता हूं, जब तक कि मैं सुपरक्लास (प्रत्येक वर्ग जिसे मैंने एक अलग स्रोत फ़ाइल में कोड किया है) का विस्तार करने की कोशिश नहीं कर रहा हूं, उदाहरण के लिए, निम्न कोड संकलन और ठीक चलाता है।
class pythonSuper:
string1 = "hello"
def printS():
print pythonSuper.string1
और पहुँच सकते हैं और इसे चलाने के लिए कोड ...
from stackoverflow.questions import pythonSuper
class pythonSub:
pysuper = pythonSuper.pythonSuper()
pysuper.printS()
जैसा कि मैंने कहा, कि काम करता है। निम्नलिखित कोड
class pythonSuper: """Same superclass as above. unmodified, except for the spacing"""
string1 = "hello"
def printS(self):
print(pythonSuper.string1)
अच्छा, यह बिल्कुल सही नहीं है। सुपरक्लास कम से कम मेरे ज्ञान के लिए बिल्कुल ठीक है। यह उपवर्ग कि
from stackoverflow.questions import pythonSuper
class pythonSub(pythonSuper):
pass
pythonObject = pythonSub()
pythonSub.pythonSuper.printS()
जब उपवर्ग चलाया जाता है ग्रहण इस त्रुटि
Traceback (most recent call last):
File "C:\Users\Anish\workspace\Python 3.3\stackoverflow\questions\pythonSub.py",
line 7, in <module>
class pythonSub(pythonSuper):
TypeError: module.__init__() takes at most 2 arguments (3 given)
मुझे पता नहीं क्या हो रहा है है बाहर प्रिंट बाहर weirds है। मैं तत्काल से ट्यूटोरियल से पायथन सीख रहा हूं, लेकिन वे पुराने हैं (मुझे लगता है कि उनका ट्यूटोरियल कोड पायथन संस्करण 2.7 का उपयोग करता है)। वह आईडीएलई में भी कोड करता है, जिसका अर्थ है कि उसकी कक्षाएं सभी एक फाइल में निहित हैं। मेरा, हालांकि, सभी अपने आप में फाइलों में कोडित हैं। इसका मतलब है कि मुझे नहीं पता कि मुझे जो कोड त्रुटियां मिल रही हैं, वे पुरानी वाक्यविन्यास या इस भाषा पर ज्ञान की कमी का परिणाम हैं। लेकिन मैं पीछे हटा। अगर कोई समाधान और/या स्पष्टीकरण के साथ वापस पोस्ट कर सकता है कि कोड गलत क्यों हो रहा है और मैं इसे ठीक करने के लिए क्या कर सकता हूं। एक स्पष्टीकरण पसंद किया जाएगा। मैं बल्कि यह जानना चाहता हूं कि मैं क्या गलत कर रहा हूं, इसलिए मैं कुछ स्थितियों की प्रतिलिपि बनाने और चिपकाने के बजाय समान परिस्थितियों में समस्या से बच सकता हूं और यह देख सकता हूं कि यह काम करता है। धन्यवाद, और मैं आपके उत्तरों के लिए तत्पर हूं
धन्यवाद, लेकिन अब यह इस त्रुटि को पोस्ट कर रहा है Traceback (सबसे हालिया कॉल अंतिम): फ़ाइल "सी: \ उपयोगकर्ता \ Anish \ workspace \ Python 3.3 \ stackoverflow \ questions \ pythonSub।पीई ", लाइन 11, pythonSub.pythonSuper.printS() विशेषताएँ त्रुटि: टाइप ऑब्जेक्ट 'पायथन सॉब' में कोई विशेषता नहीं है 'पायथन सुपर' और मैं किसी को भी परेशान नहीं करना चाहता, लेकिन किसी भी कारण से? –
pipsqueaker117
आप क्यों उम्मीद करेंगे यह करने के लिए? pythonSub pythonSuper का विस्तार कर रहा है, इसमें शामिल नहीं है। 'प्रिंटएस' विरासत में मिला है, और आप सीधे अपने पायथन सॉब उदाहरण के माध्यम से इसका उपयोग करते हैं। –
@DanielRoseman मुझे खेद है, जो मेरे सिर पर थोड़ा सा उड़ गया। क्या आप इसे समझा सकते हैं , उम, नोब भाषा? (वैकल्पिक रूप से आप मुझे उस पृष्ठ से लिंक कर सकते हैं जहां मैं यह सब सामान सीख सकता हूं)। – pipsqueaker117