পাইথনের স্ট্যান্ডার্ড ডিস্ট্রিবিউশনের অ্যাটেক্সিট মডিউলটির দুটি ফাংশন রয়েছে - রেজিস্টার() এবং আনরেজিস্টার()। উভয় ফাংশন একটি যুক্তি হিসাবে কিছু বিদ্যমান ফাংশন গ্রহণ. যখন দোভাষী সেশন স্বাভাবিকভাবে বন্ধ করা হয় তখন নিবন্ধিত ফাংশনগুলি স্বয়ংক্রিয়ভাবে কার্যকর হয়৷
যদি একাধিক ফাংশন নিবন্ধিত হয়, তাদের সম্পাদন নিবন্ধনের বিপরীত ক্রমে হয়। এর মানে, ফাংশন f1(), f2() এবং f3() একের পর এক নিবন্ধিত, তাদের কার্যকর করার ক্রম হবে f3(), f2() এবং f1()।
unregister() ফাংশন স্বয়ংক্রিয়ভাবে আহ্বান করা ফাংশনগুলির তালিকা থেকে নির্দিষ্ট ফাংশনটিকে সরিয়ে দেয়৷
নিম্নলিখিত কোড দেখায় কিভাবে একটি ফাংশন কোডের সমাপ্তির পরে স্বয়ংক্রিয়ভাবে সম্পাদনের জন্য নিবন্ধিত হয়। (দ্রষ্টব্য:এই কোডটি একটি কমান্ড লাইন থেকে কার্যকর করতে হবে এবং IDLE এর মাধ্যমে নয়)। প্রোগ্রামটি একটি ব্যবহারকারীকে ধারাবাহিকভাবে নম্বর ইনপুট করতে বলে এবং সেগুলি যোগ করে। লুপ শেষ হয়ে গেলে, একটি ফাইলের সংযোজন সংরক্ষণ করতে নিবন্ধিত ফাংশন savetotal() স্বয়ংক্রিয়ভাবে কল করা হয়।
ইমপোর্ট atexitsum =0def savetotal():fo =open("atexit.txt","w")fo.write(str(sum))print ("ফাইলে লেখা যোগফল")fo.close()atexit। রেজিস্টার(সংরক্ষণ) যখন True:n =int(ইনপুট("একটি সংখ্যা লিখুন। প্রস্থান করতে -1"))যদি n ==-1:breaksum =sum + nprint (sum)
উপরের কোডটিকে atexit-example.py হিসাবে সংরক্ষণ করুন এবং কমান্ড লাইন থেকে চালান। পরের সংখ্যা ইনপুট যোগ করা হয় এবং শেষে atexit.txt-এ মোট লেখা হয়।
C:\python36>python atexit-example.pyenter একটি সংখ্যা। -1 প্রস্থান করতে একটি সংখ্যা লিখুন. -1 প্রস্থান করুন6 নম্বর লিখুন। -1 একটি সংখ্যা প্রবেশ 3 প্রস্থান করতে. -1 থেকে বের হতে 5 নম্বর লিখুন। -1 প্রস্থান করুন2 একটি সংখ্যা প্রবেশ করুন. -1 থেকে প্রস্থান করতে -120sum ফাইলে লেখা হয়েছেatexit.txt ফাইলটি বর্তমান ডিরেক্টরিতে তৈরি করা হবে এবং এটি মোট সংরক্ষণ করবে (এই ক্ষেত্রে 20)।
বিভিন্ন আর্গুমেন্ট সহ একটি ফাংশন নিবন্ধন করাও সম্ভব। সেক্ষেত্রে, প্রতিটি আর্গুমেন্ট সহ ফাংশন স্বাধীনভাবে নিবন্ধিত হবে এবং নিবন্ধনের বিপরীত ক্রমে কার্যকর করা হবে৷
ইমপোর্ট atexitnames =['অশোক', 'রাধা', 'আব্দুল', 'জন']ডেফ হ্যালো(নাম):প্রিন্ট ("হ্যালো", নাম) নামের জন্য নাম:atexit.register(হ্যালো, নাম)আউটপুট
C:\python36>python atexit-example2.pyHello JohnHello AbdulHello RadhaHello অশোকatexit.unregister(hello) ফাংশনের তালিকা থেকে বিভিন্ন পরামিতি সহ hello() এর সমস্ত কপি মুছে ফেলবে।
ডেকোরেটর সিনট্যাক্স
একটি ফাংশন নিবন্ধন করার একটি সুবিধাজনক বিকল্প হল রেজিস্টার() ফাংশনকে ডেকোরেটর হিসাবে ব্যবহার করা৷
import [email protected] hello():print('Hello World!')print('Say Hello')আউটপুট
C:\python36>python atexit-example3.pySay HelloHello World!যদি প্রোগ্রাম হঠাৎ বন্ধ হয়ে যায় বা os.exit() ফাংশন কল করা হয় তবে নিবন্ধিত ফাংশনগুলি স্বয়ংক্রিয়ভাবে আহ্বান করা হবে না৷
অ্যাটেক্সিট মডিউল স্বয়ংক্রিয়ভাবে পরিচ্ছন্ন ক্রিয়াকলাপ যেমন ডাটাবেস এবং ফাইলগুলি বন্ধ করা, সংস্থানগুলি খালি করা ইত্যাদিতে কার্যকর।