पायथन में निकास (0) और निकास (1) के बीच अंतर


167

पायथन में exit(0)और क्या अंतर है exit(1)?

मैंने चारों ओर देखने की कोशिश की, लेकिन इन पंक्तियों पर कोई विशिष्ट प्रश्न नहीं मिला। यदि यह पहले से ही उत्तर दिया गया है, तो एक लिंक पर्याप्त होगा।


9
यहाँ exit()डॉक्स में एक लिंक दिया गया है , जो मुझे हमेशा के लिए खोजने में लग गया।
रेन एवरेट


बस एहसास हुआ कि exit(0)इस सवाल पर चर्चा की गई है और एक अंडरस्कोर के साथ भी _exit(0), यहाँ
इलायची

इन कोडों के बारे में अच्छी बात यह है कि इनका उपयोग ifएक bashआवरण में एक बयान में सीधे किया जा सकता है , इसलिए आगे की कार्रवाई की जा सकती है कि पायथन कार्यक्रम सफल होता है या नहीं और क्या यह एक गैर-शून्य स्थिति बढ़ा है।
एसडीसोलर

अजीब, अगर 0 गलत है और 1 पायथन में सच है, तो आपको लगता है कि संख्या का मतलब विपरीत होगा
मोनिका हेडडेक

जवाबों:


248

0 और 1 निकास कोड हैं।

exit(0) बिना किसी त्रुटि / समस्या के स्वच्छ निकास का मतलब है

exit(1) इसका मतलब है कि कुछ समस्या / त्रुटि / समस्या थी और यही कारण है कि कार्यक्रम से बाहर निकल रहा है।

यह पायथन विशिष्ट नहीं है और बहुत आम है। एक गैर-शून्य निकास कोड को एक असामान्य निकास के रूप में माना जाता है, और कई बार, त्रुटि कोड इंगित करता है कि समस्या क्या थी। शून्य त्रुटि कोड का मतलब एक सफल निकास है।

यह अन्य कार्यक्रमों, शेल, कॉलर आदि के लिए उपयोगी है ताकि यह पता चल सके कि आपके कार्यक्रम के साथ क्या हुआ है और तदनुसार आगे बढ़ें।


10
और बाहर निकलने (-1) का क्या?
फैजान

16
@ फैजान: बाहर निकलने का कोड यूनिक्स पर 8-बिट मूल्य है। यदि आप आह्वान करते हैं exit(-1), तो मान समान है exit(255)- कम से कम 8 बिट्स कॉलिंग प्रोग्राम (शेल या जो भी हो) से संबंधित हैं।
जोनाथन लेफ़लर

4
ध्यान दें कि डॉक्स के अनुसार , मॉड्यूल exit()द्वारा जोड़ा जाता है site, और कार्यक्रमों द्वारा उपयोग नहीं किया जाना चाहिए। इसके बजाय, यदि आप किसी अन्य मॉड्यूल को आयात नहीं करना चाहते हैं, तो उपयोग करें sys.exit()या यहां तक raise SystemExitकि।
daviewales

2
यूनिक्स / लिनक्स से बाहर निकलने के कोड के कारण, मैं सोच रहा था कि 0 सच है और 1 पायथन स्थितियों में गलत मूल्य है।
vlyalcin

19

यह प्रोग्राम के बाहर निकलने की स्थिति को निर्धारित करता है जब यह चल रहा है (आमतौर पर, सफलता के लिए 0 और त्रुटि के लिए 1)।

यह पायथन के लिए अद्वितीय नहीं है, और सटीक प्रभाव आपके ऑपरेटिंग सिस्टम पर निर्भर करता है और प्रोग्राम को कैसे कहा जाता है (हालांकि समय का 99%, यदि आप सिर्फ पायथन स्क्रिप्ट चला रहे हैं, तो इससे कोई फर्क नहीं पड़ता)।


12

पायथन सहित सभी सी कार्यक्रमों के लिए मानक सम्मेलन, exit(0)सफलता को इंगित करने के लिए है, और exit(1)या किसी अन्य गैर-शून्य मान (सीमा 1..255 में) विफलता को इंगित करने के लिए है। सीमा के बाहर कोई भी मान 0..255 को मोडुलो 256 (निकास स्थिति को 8-बिट मान में संग्रहीत किया जाता है) माना जाता है। कभी-कभी, यह हस्ताक्षरित के रूप में माना जाएगा (इसलिए आप -128, -127, आदि को देख सकते हैं) लेकिन आमतौर पर इसे अहस्ताक्षरित माना जाता है।

यह स्थिति उस कोड के लिए उपलब्ध है जिसने पायथन को आमंत्रित किया था। यह सम्मेलन प्लेटफार्मों पर लागू होता है, हालांकि गैर-शून्य निकास स्थिति का अर्थ विभिन्न प्लेटफार्मों पर भिन्न हो सकता है।


7

exit()फ़ंक्शन में आपके द्वारा पास की जाने वाली संख्या बस आपके प्रोग्राम का रिटर्न कोड है, जो ऑपरेटिंग सिस्टम को दिया जाता है। आपके कार्यक्रम के दृष्टिकोण से, कोई अंतर नहीं है: निष्पादन दोनों मामलों में समाप्त हो जाएगा, और फ़ंक्शन को आपूर्ति की गई कीमत ओएस को दी जाएगी। लेकिन कुछ टूल और स्क्रिप्ट प्रोग्राम के एक्जिट कोड को ध्यान में रखते हैं। अधिकांश उपकरण 0 पर वापस आते हैं जब वे सफल होते हैं और त्रुटि को इंगित करने के लिए नॉनज़रो।

इसलिए, यदि आपका प्रोग्राम एक स्क्रिप्ट, एक स्वचालित उपकरण या कुछ अन्य सॉफ़्टवेयर से लिया जाएगा जो रिटर्न कोड (जैसे आईडीई) को ध्यान में रखता है, तो आपको सावधान रहना चाहिए कि आप क्या लौटाते हैं।

जब संदेह हो, तो सब कुछ ठीक होने का संकेत देने के लिए 0 वापस करें।


6

exit(0): यह प्रोग्राम को एक सफल समाप्ति के साथ बाहर निकलने का कारण बनता है।

exit(1): यह प्रोग्राम को सिस्टम-विशिष्ट अर्थ से बाहर निकलने का कारण बनता है।

कई प्रणालियों पर, exit(1)किसी प्रकार की विफलता का संकेत देते हैं, हालांकि इसकी कोई गारंटी नहीं है।

जैसा कि मुझे याद है, C मानक केवल तीन मानक निकास मानों को पहचानता है:

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