python - एक पायथन लिपि को समाप्त करना




termination (6)

आप बस exit() भी उपयोग कर सकते हैं।

ध्यान रखें कि sys.exit() , exit() , quit() , और os._exit(0) पायथन दुभाषिया को मार दें । इसलिए, अगर यह किसी अन्य स्क्रिप्ट से execfile() द्वारा लिखी गई स्क्रिप्ट में दिखाई देता है, तो यह दोनों स्क्रिप्ट्स के निष्पादन को रोक देता है।

इससे बचने के लिए " execfile के साथ बुलाए गए स्क्रिप्ट को निष्पादित करना बंद करें " देखें।

मैं PHP में die() कमांड से अवगत हूं जो एक स्क्रिप्ट को जल्दी बंद कर देता है।

मैं पायथन में यह कैसे कर सकता हूं?


एक और तरीका है:

raise SystemExit

जबकि आपको आमतौर पर sys.exit पसंद करना चाहिए क्योंकि यह अन्य कोड के लिए अधिक "अनुकूल" है, वास्तव में यह वास्तव में अपवाद उठाता है।

यदि आप सुनिश्चित हैं कि आपको तुरंत एक प्रक्रिया से बाहर निकलने की आवश्यकता है, और आप कुछ अपवाद हैंडलर के अंदर हो सकते हैं जो SystemExit को पकड़ SystemExit , तो एक और फ़ंक्शन - os._exit - जो तुरंत सी स्तर पर समाप्त हो जाता है और इनमें से कोई भी प्रदर्शन नहीं करता है दुभाषिया के सामान्य आंसू; उदाहरण के लिए, "atexit" मॉड्यूल के साथ पंजीकृत हुक निष्पादित नहीं किए जाते हैं।


पायथन 3.5 में, मैंने स्क्रिप्ट को रोकने और मेरे उपयोगकर्ताओं को एक त्रुटि संदेश मुद्रित करने के अलावा अंतर्निहित मॉड्यूल (उदाहरण के लिए sys, biopy) के उपयोग के बिना समान कोड को शामिल करने का प्रयास किया। मेरा उदाहरण यहां दिया गया है:

## My example:
if "ATG" in my_DNA: 
    ## <Do something & proceed...>
else: 
    print("Start codon is missing! Check your DNA sequence!");
    exit(); ## as most folks said above

बाद में, मैंने पाया कि एक त्रुटि फेंकने के लिए यह अधिक संक्षिप्त है:

## My example revised:
if "ATG" in my_DNA: 
    ## <Do something & proceed...>
else: 
    raise ValueError("Start codon is missing! Check your DNA sequence!");

मैं कुल नौसिखिया हूं लेकिन निश्चित रूप से यह क्लीनर और अधिक नियंत्रित है

def main():
    try:
        Answer = 1/0
        print  Answer
    except:
        print 'Program terminated'
        return
    print 'You wont see this'

if __name__ == '__main__': 
    main()

...

कार्यक्रम समाप्त

से

import sys
def main():
    try:
        Answer = 1/0
        print  Answer
    except:
        print 'Program terminated'
        sys.exit()
    print 'You wont see this'

if __name__ == '__main__': 
    main()

...

कार्यक्रम ट्रेसबैक (सबसे हालिया कॉल अंतिम) समाप्त: फ़ाइल "जेड: \ निर्देशिका \ testdieprogram.py", लाइन 12, मुख्य में () फ़ाइल "Z: \ निर्देशिका \ testdieprogram.py", पंक्ति 8, मुख्य sys.exit में फ़ाइल ( ) सिस्टम एक्सिटिट

संपादित करें

मुद्दा यह है कि कार्यक्रम "मैंने बंद कर दिया है" के बजाए सुचारू रूप से और शांतिपूर्वक समाप्त होता है


from sys import exit
exit()

एक पैरामीटर के रूप में आप एक निकास कोड पास कर सकते हैं, जिसे ओएस में वापस कर दिया जाएगा। डिफ़ॉल्ट 0 है।





termination