जवाबों:
मुझे उनके बारे में कुछ जानकारी दें:
quit()बस SystemExitअपवाद को उठाता है।
इसके अलावा, यदि आप इसे प्रिंट करते हैं, तो यह एक संदेश देगा:
>>> print (quit)
Use quit() or Ctrl-Z plus Return to exit
>>>
इस कार्यक्षमता को उन लोगों की मदद करने के लिए शामिल किया गया था जो पाइथन को नहीं जानते हैं। आखिरकार, एक नौसिखिया सबसे संभावित चीजों में से एक पायथन से बाहर निकलने की कोशिश करेगा quit।
फिर भी, उत्पादन कोड में उपयोग नहीं किया quitजाना चाहिए । यह इसलिए है क्योंकि यह केवल काम करता है अगर मॉड्यूल लोड किया गया है। इसके बजाय, इस फ़ंक्शन का उपयोग केवल दुभाषिया में किया जाना चाहिए।site
exit()quit(या इसके विपरीत) के लिए एक उपनाम है । वे केवल पायथन को अधिक उपयोगकर्ता-अनुकूल बनाने के लिए एक साथ मौजूद हैं।
इसके अलावा, यह भी एक संदेश देता है जब मुद्रित:
>>> print (exit)
Use exit() or Ctrl-Z plus Return to exit
>>>
हालांकि, जैसे quit, exitउत्पादन कोड में उपयोग करने के लिए बुरा माना जाता है और दुभाषिया में उपयोग के लिए आरक्षित होना चाहिए। ऐसा इसलिए है क्योंकि यह siteमॉड्यूल पर भी निर्भर करता है ।
sys.exit()SystemExitअपवाद भी उठाता है। इसका मतलब है कि यह उस संबंध में जैसा है quitऔर वैसा ही है exit।
हालांकि उन दो के विपरीत, sys.exitउत्पादन कोड में उपयोग करने के लिए अच्छा माना जाता है। ऐसा इसलिए है क्योंकि sysमॉड्यूल हमेशा रहेगा।
os._exit()सफाई संचालकों, निस्तब्धता stdio बफ़र, आदि को बुलाए बिना कार्यक्रम से बाहर निकलता है । इस प्रकार, यह बाहर निकलने के लिए एक मानक तरीका नहीं है और इसका उपयोग केवल विशेष मामलों में किया जाना चाहिए। इनमें से सबसे आम द्वारा बनाई गई बाल प्रक्रिया (तों) में है os.fork।
ध्यान दें कि, दी गई चार विधियों में, यह केवल वही करता है जो यह करता है।
सारांशित, सभी चार विधियाँ कार्यक्रम से बाहर निकलती हैं। हालांकि, पहले दो को उत्पादन कोड में उपयोग करने के लिए बुरा माना जाता है और अंतिम एक गैर-मानक, गंदा तरीका है जो केवल विशेष परिदृश्यों में उपयोग किया जाता है। इसलिए, यदि आप सामान्य रूप से किसी प्रोग्राम से बाहर निकलना चाहते हैं, तो तीसरी विधि के साथ जाएँ sys.exit:।
या, मेरी राय में और भी बेहतर, आप बस सीधे वही कर सकते हैं जो sys.exitपर्दे के पीछे चलता है और चलता है:
raise SystemExit
इस तरह, आपको sysपहले आयात करने की आवश्यकता नहीं है ।
हालांकि, यह पसंद स्टाइल पर बस एक है और विशुद्ध रूप से आप पर निर्भर है।
quitऔर exitशेल sys.exitको नहीं छोड़ते हैं।
sys.exit()बंद करने के लिए एक विश्वसनीय तरीका नहीं है। यदि इसे एक धागे के अंदर कहा जाता है, तो यह केवल उस धागे को समाप्त कर देगा जब तक कि यह मुख्य धागे में न हो। इससे बहुत सारे मामले हो सकते हैं जहां कार्यक्रम जारी रहता है क्योंकि कॉल मुख्य धागे में नहीं था, विशेष रूप से कुछ दुभाषियों द्वारा थ्रेड कॉल को आमंत्रित किया जाएगा।
endकमांड जोड़ने के लिए वोट करता हूं जो होगा raise SystemExit। यह मत देखिए कि मूल रूप में ऐसा कुछ सरल क्यों नहीं हो सकता है।
printएक बयान से एक फ़ंक्शन में क्यों बदला गया था के समान है । सिंटैक्स जोड़ना आसान है, लेकिन ऐसा करने में एक जटिलता लागत है।
sys.exit()?
फ़ंक्शन * quit() , exit()और sys.exit()उसी तरह से कार्य करते हैं: वे SystemExitअपवाद को बढ़ाते हैं। तो वहाँ कोई वास्तविक अंतर, सिवाय इसके कि है sys.exit()हमेशा होता है उपलब्ध है, लेकिन exit()और quit()तभी उपलब्ध होता है कर रहे हैं siteमॉड्यूल आयात किया जाता है।
os._exit()समारोह खास है, यह किसी भी सफाई कार्यों बुला बिना तुरंत बाहर निकल जाता है (यह नहीं फ्लश बफ़र्स करता है, उदाहरण के लिए)। यह अत्यधिक विशिष्ट उपयोग के मामलों के लिए डिज़ाइन किया गया है ... मूल रूप से, केवल एक os.fork()कॉल के बाद बच्चे में ।
का उपयोग करें exit()या quit()REPL में।
sys.exit()स्क्रिप्ट में उपयोग करें , या raise SystemExit()यदि आप पसंद करते हैं।
os._exit()कॉल करने के बाद बाहर निकलने के लिए बच्चे की प्रक्रियाओं के लिए उपयोग करें os.fork()।
इन सभी को तर्कों के बिना बुलाया जा सकता है, या आप बाहर निकलने की स्थिति, उदाहरण के लिए, exit(1)या स्थिति से बाहर निकलने के लिए निर्दिष्ट कर सकते हैं। raise SystemExit(1)1. ध्यान दें कि पोर्टेबल प्रोग्राम 0-255 की सीमा में स्थिति कोड से बाहर निकलने तक सीमित हैं, यदि आप raise SystemExit(256)कई प्रणालियों पर यह करेंगे छंटनी हो और आपकी प्रक्रिया वास्तव में स्थिति 0 से बाहर निकल जाएगी।
* वास्तव में, quit()और exit()कॉल करने योग्य उदाहरण ऑब्जेक्ट हैं, लेकिन मुझे लगता है कि उन्हें फ़ंक्शन कॉल करना ठीक है।
os._exit():
exit(0):
exit(1):
sys.exit():
quit():
मूल रूप से वे सभी एक ही काम करते हैं, हालांकि, यह इस बात पर भी निर्भर करता है कि आप इसके लिए क्या कर रहे हैं।
मैं तुम्हें कुछ भी बाहर छोड़ दिया नहीं लगता कि और मैं करने के लिए इस्तेमाल हो रही है की सिफारिश करेंगे quit()या exit()।
आप उपयोग करेंगे sys.exit()और os._exit()मुख्य रूप से यदि आप बड़ी फ़ाइलों का उपयोग कर रहे हैं या टर्मिनल को नियंत्रित करने के लिए अजगर का उपयोग कर रहे हैं।
अन्यथा मुख्य रूप से उपयोग exit()या quit()।
sys.exit बाहर निकलने के लिए विहित तरीका है।
आंतरिक रूप से sys.exitबस उठता है SystemExit। हालांकि, सीधे कॉल करने sys.exitकी तुलना में कॉलिंग अधिक मुहावरेदार है SystemExit।
os.exit एक निम्न-स्तरीय प्रणाली कॉल है जो किसी भी सफाई हैंडलर को कॉल किए बिना सीधे बाहर निकल जाती है।
quitऔर exitकेवल पायथन प्रॉम्प्ट से एक आसान रास्ता प्रदान करने के लिए मौजूद है। यह नए उपयोगकर्ताओं या उपयोगकर्ताओं के लिए है जो गलती से पायथन प्रॉम्प्ट में प्रवेश कर चुके हैं, और सही सिंटैक्स जानना नहीं चाहते हैं। वे टाइपिंग की कोशिश करने की संभावना है exitया quit। हालांकि यह दुभाषिया से बाहर नहीं निकलेगा, यह कम से कम एक संदेश जारी करता है जो उन्हें बाहर का रास्ता बताता है:
>>> exit
Use exit() or Ctrl-D (i.e. EOF) to exit
>>> exit()
$
यह अनिवार्य रूप से सिर्फ एक हैक है जो इस तथ्य का उपयोग करता है कि दुभाषिया __repr__किसी भी अभिव्यक्ति के प्रिंट करता है जिसे आप प्रॉम्प्ट पर दर्ज करते हैं।
os.abort()