बनाने की वापसी विफलता सबसे पहले, मुझे पता है कि __init__()
पायथन में किसी वर्ग का फ़ंक्शन कोई मान नहीं लौटा सकता है, इसलिए दुख की बात यह विकल्प अनुपलब्ध है।पायथन __init__
मेरे कोड की संरचना के कारण, कक्षा के __init__
फ़ंक्शन के अंदर डेटा दावा (और उपयोगकर्ता को जानकारी देने के लिए संकेत देता है) होने का अर्थ होता है। हालांकि, इसका मतलब है कि वस्तु का निर्माण असफल हो सकता है, और मैं इससे संतुष्ट रूप से पुनर्प्राप्त करने में सक्षम होना चाहता हूं।
मैं सोच रहा था कि इसके साथ जारी रखने का सबसे अच्छा तरीका क्या है। मैंने एक वैश्विक बूलियन को 'वैध निर्माण' ध्वज के रूप में स्थापित करने पर विचार किया है, लेकिन मैं नहीं करना चाहूंगा।
कोई अन्य विचार (पुनर्गठन के अलावा प्रारंभिकरण के बाहर हो सकता है और मूल्य तर्क के रूप में पारित किए जाते हैं)? मैं मूल रूप से सफलता पर वापसी 0 और शुरुआत के दौरान विफलता पर वापसी -1 का एक तरीका तलाश रहा हूं। (अधिकांश सी सिस्टम कॉल की तरह)
एक अपवाद उठाएं। –
सफलता पर 0 लौटने और विफलता पर -1 बहुत ही पाइथोनिक है। त्रुटि रिटर्न खराब हैं, क्योंकि उन्हें अनदेखा करना आसान है, और वर्बोज़ को संभालने में आसान है। उस के शीर्ष पर, 0 और -1 का उपयोग बूलियन मानों के रूप में केवल किसी लाभ के साथ भ्रम जोड़ता है। सी कोड लिखने के लिए पायथन का उपयोग करने के लिए सच नहीं है। – abarnert
जैसा कि @jsbueno अपने उत्तर में बताता है, क्लास उदाहरण _initialit_ को '__init __()' में बनाया गया है, जो नहीं बनाया गया है, यही कारण है कि यह एक मान वापस नहीं करता है। ऐसा करने में असफलताओं को पहचानने या अपवाद फेंकने के लिए वैश्विक चर का उपयोग करने के बजाय, आप अपने राज्य को इंगित करने के लिए अपनी कक्षा में एक डेटा सदस्य जोड़ सकते हैं और उसके बाद अपना मान सीधे जांच सकते हैं या एक विधि को कॉल कर सकते हैं जो '__init __()' के बाद अपना मान देता है यह निर्धारित करने के लिए कहा जाता है कि कुछ गलत (और संभवतः क्या) गलत है। – martineau