पायथन वर्ग परिभाषा वाक्यविन्यास


95

क्या इसमें कोई अंतर है

class A:
    ...

तथा

class A():
    ...

मुझे बस एहसास हुआ कि मेरी कक्षाओं के एक जोड़े को पूर्व के रूप में परिभाषित किया गया है और वे ठीक काम करते हैं। क्या खाली कोष्ठक से कोई फर्क पड़ता है?

जवाबों:


23

बाद वाला पायथन के पुराने संस्करणों पर एक वाक्यविन्यास त्रुटि है। Python 2.x में आपको objectजब भी संभव हो तब से प्राप्त करना चाहिए , क्योंकि कई उपयोगी सुविधाएँ केवल नई शैली की कक्षाओं के साथ उपलब्ध हैं (व्युत्पन्न objectPython 3.x में वैकल्पिक है, क्योंकि नई-शैली की कक्षाएं वहां डिफ़ॉल्ट हैं)।


7
अजगर 3 में अब सच नहीं है; objectबकवास से प्राप्त होने वाले सभी को स्वचालित रूप से ध्यान रखा जाता है।
temporary_user_name

4
क्या class A()कभी सिंटैक्स त्रुटि हुई थी? अजगर 1.4 डॉक्स का कहना है कि यह ठीक है, और उन सबसे पुराने डॉक्स अभी भी python.org पर उपलब्ध हैं।
user2357112 मोनिका को सपोर्ट करता है

90

जबकि वर्ग परिभाषा में खाली कोष्ठक का उपयोग करना वाक्य-रचना के लिए गलत नहीं हो सकता है, वर्ग परिभाषा के बाद कोष्ठक का उपयोग वंशानुक्रम को इंगित करने के लिए किया जाता है, उदाहरण के लिए:

class A(baseClass):
    ...

पायथन में, बिना किसी आधार वर्ग के वर्ग घोषणा के लिए पसंदीदा वाक्यविन्यास बस है:

class A:
    ...

जब तक आप अन्य वर्गों को उपवर्ग नहीं दे रहे हैं, तब तक कोष्ठक का उपयोग न करें।

इस मामले पर डॉक्स आप कैसे घोषित करने और अजगर में उपयोग के वर्गों के लिए बेहतर ढंग से समझ देना चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.