में विरासत और init विधि मैं अजगर का भिखारी हूं। मैं विरासत और __init__()
समझ नहीं सकता।पाइथन
class Num:
def __init__(self,num):
self.n1 = num
class Num2(Num):
def show(self):
print self.n1
mynumber = Num2(8)
mynumber.show()
परिणाम: 8
यह ठीक है। Error. Num2 has no attribute "n1".
इस मामले में, कैसे Num2
पहुँच n1
कर सकते हैं: लेकिन मैं साथ
class Num2(Num):
def __init__(self,num):
self.n2 = num*2
def show(self):
print self.n1,self.n2
परिणाम Num2
की जगह?
आपका उद्धरण यह समझाने के लिए पर्याप्त नहीं है कि क्यों, व्युत्पन्न-कक्षा में '' __init__'' विधि को परिभाषित नहीं करते हैं, यह विरासत में मिलता है। ऐसा इसलिए है क्योंकि _ "यदि क्लास में एक अनुरोधित विशेषता नहीं मिली है, तो खोज बेस क्लास में देखने के लिए आय प्राप्त होती है।" _ (डॉक्टर) – eyquem
मुझे खेद है ... यह मूल रूप से विरासत कैसे काम करता है ... यदि आप वारिस करते हैं एक वर्ग, आपको पूरा पैकेज मिलता है, इसलिए सुपरक्लास में सब कुछ उपclass में मौजूद है। लेकिन, यदि आप किसी विधि को फिर से परिभाषित करते हैं, तो यह अतिसंवेदनशील हो जाता है ... यह आपके कोड में है। – coya