के लिए __init__ का उपयोग करने के विभिन्न तरीके तो ... मैं PyQt4 का उपयोग कर मूल पायथन से कुछ जीयूआई प्रोग्रामिंग में स्थानांतरित करने की कोशिश करने पर काम कर रहा हूं। मैं कुछ अलग-अलग किताबों और ट्यूटोरियल देख रहा हूं, और उनमें से प्रत्येक वर्ग परिभाषा को दूर करने का थोड़ा अलग तरीका प्रतीत होता है।PyQt4
एक ट्यूटोरियल इतनी तरह कक्षाएं शुरू होता है:
class Example(QtGui.QDialog):
def __init__(self):
super(Example, self).__init__()
एक और किताब इस तरह यह करता है:
class Example(QtGui.QDialog):
def __init__(self, parent=None):
super(Example, self).__init__(parent)
और फिर भी एक और यह इस तरह से है:
class Example(QtGui.QDialog):
def__init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
मैं मैं अभी भी कक्षाओं और ओओपी और super()
के आसपास अपने दिमाग को लपेटने की कोशिश कर रहा हूं और सब ... क्या मैं सोच में सही हूँ कि तीसरे उदाहरण की आखिरी पंक्ति पिछले वर्ग में स्पष्ट रूप से बेस क्लास को सीधे कॉल करके super()
का उपयोग कर कॉल के समान ही कम करती है? अपेक्षाकृत सरल उदाहरणों के लिए, जैसे कि एकल विरासत, क्या कोई वास्तविक लाभ या दूसरा तरीका बनाम दूसरे तरीके का उपयोग करने का कारण है? अंत में ... दूसरा उदाहरण parent
को super()
पर तर्क के रूप में पास करता है जबकि पहला नहीं है ... किसी भी अनुमान/स्पष्टीकरण के लिए क्यों/कब/कहाँ उचित होगा?
आप एक * तेज * उत्तर टाइपर हैं - मेरे आगे – Hubro
@ कोडमनीकी सवाल पूछने के 7 मिनट बाद, * तेज़ नहीं। :) – Dougal