मैं एक सी # पृष्ठभूमि से आया हूं जहां भाषा ने "डेवलपर की रक्षा" सुविधाओं में कुछ बनाया है। मैं समझता हूं कि पाइथन "हम सभी वयस्क हैं" दृष्टिकोण लेते हैं और डेवलपर को विचारपूर्वक और ध्यान से कोड करने की जिम्मेदारी देते हैं।पायथन सार कक्षाएं - तत्कालता को हतोत्साहित करने के लिए कैसे?
यह कहा गया है कि पाइथन निजी आवृत्ति चर के लिए अग्रणी अंडरस्कोर जैसे सम्मेलनों का सुझाव देता है। मेरा सवाल है, क्या कक्षा को केवल डॉकस्ट्रिंग में निर्दिष्ट करने के अलावा अन्य को सार के रूप में चिह्नित करने के लिए एक विशेष सम्मेलन है? मैंने विशेष रूप से पाइथन शैली मार्गदर्शिका में कुछ भी नहीं देखा है जो सार वर्गों के लिए सम्मेलन नामकरण का उल्लेख करता है।
मैं अब तक 3 विकल्प के बारे में सोच सकते हैं, लेकिन मुझे यकीन है कि अगर वे अच्छे विचार कर रहे हैं नहीं कर रहा हूँ:
- श्रेणी से ऊपर docstring में यह निर्दिष्ट करें (अनदेखी की जा सकती है)
- एक अग्रणी उपयोग वर्ग के नाम (यकीन नहीं अगर यह सार्वभौमिक समझा जाता है) में रेखांकित
- सार वर्ग कि एक त्रुटि को जन्म देती है पर एक
def __init__(self):
विधि बनाएँ (यकीन है कि, अगर यह नकारात्मक रूप से प्रभावित विरासत नहीं जैसा कि आप किसी आधार निर्माता कॉल करना चाहते हैं)
इनमें से एक अच्छा विकल्प है या क्या कोई बेहतर है? मैं सिर्फ यह सुनिश्चित करना चाहता हूं कि अन्य डेवलपर्स जानते हैं कि यह सार है और इसलिए यदि वे इसे तुरंत चालू करने का प्रयास करते हैं तो उन्हें किसी भी अजीब व्यवहार की ज़िम्मेदारी स्वीकार करनी चाहिए।
यदि आप 'सुपर .__ init__' को कॉल करने वाले किसी व्यक्ति के बारे में चिंतित हैं, या इसे कुछ करना चाहते हैं लेकिन * सीधे * तत्काल नहीं है, तो आपके पास 'बेस .__ init__' में ऐसा कुछ हो सकता है:' यदि टाइप (स्वयं) आधार है: NotImplementedError बढ़ाएं ('बेस .__ init __(): अमूर्त वर्ग') ' –