जब मेरा पायथन प्रोग्राम खत्म होता है तो मैं एक कार्य चलाने के लिए चाहता हूं, लेकिन केवल तभी सफलतापूर्वक समाप्त हो जाता है। जहां तक मुझे पता है, एटएक्सिट मॉड्यूल का उपयोग करना है कि मेरा पंजीकृत फ़ंक्शन हमेशा सफलता की परवाह किए बिना प्रोग्राम समाप्ति पर चलाया जाएगा। क्या फ़ंक्शन पंजीकृत करने के लिए कोई समान कार्यक्षमता है ताकि यह केवल सफल निकास पर ही चल सके? वैकल्पिक रूप से, क्या मेरे निकास समारोह के लिए यह पता लगाने का कोई तरीका है कि बाहर निकलना सामान्य या असाधारण था या नहीं?मैं अपने पायथन कार्यक्रम के केवल * सफल * बाहर निकलने के लिए केवल एक फ़ंक्शन को कैसे पंजीकृत कर सकता हूं?
यहां कुछ कोड है जो समस्या का प्रदर्शन करता है। यह प्रिंट करेगा कि कार्यक्रम सफल हुआ, भले ही यह विफल हो गया हो।
import atexit
def myexitfunc():
print "Program succeeded!"
atexit.register(myexitfunc)
raise Exception("Program failed!")
आउटपुट:, के रूप में चीजों को बंद कर रहे हैं यह मुख्य रूप से बहुत आखिरी समय पर संसाधन सफाई के लिए प्रयोग किया जाता है:
$ python atexittest.py
Traceback (most recent call last):
File "atexittest.py", line 8, in <module>
raise Exception("Program failed!")
Exception: Program failed!
Program succeeded!
यह संभवतः मैंने जो पूछा उससे प्राप्त करने का सबसे सरल तरीका है। –