কম্পিউটার

কিভাবে ধ্বংসকারী পদ্ধতি __del__() পাইথনে কাজ করে?


__del__() পদ্ধতিটি একটি ধ্বংসকারী পদ্ধতি হিসাবে পরিচিত। এটি বলা হয় যখন একটি বস্তুর আবর্জনা সংগ্রহ করা হয় যা বস্তুর সমস্ত উল্লেখ মুছে ফেলার পরে ঘটে।

একটি সাধারণ ক্ষেত্রে আপনি del x এর মতো একটি ভেরিয়েবল মুছে ফেলার পরে বা, যদি x একটি স্থানীয় ভেরিয়েবল হয়, ফাংশন শেষ হওয়ার পরে এটি ঠিক হতে পারে। বিশেষ করে, যদি বৃত্তাকার রেফারেন্স না থাকে, CPython যা মান Python বাস্তবায়ন অবিলম্বে আবর্জনা সংগ্রহ করবে।

পাইথন আবর্জনা সংগ্রহের একমাত্র বৈশিষ্ট্য হল যে এটি সমস্ত রেফারেন্স মুছে ফেলার পরে ঘটে, তাই এটি অগত্যা ঠিক পরে ঘটতে পারে না এবং এমনকি ঘটতেও পারে না৷

এমনকি আরও বেশি, ভেরিয়েবলগুলি অনেক কারণের জন্য দীর্ঘকাল বেঁচে থাকতে পারে, উদাহরণস্বরূপ। একটি প্রচারমূলক ব্যতিক্রম বা মডিউল আত্মদর্শন পরিবর্তনশীল রেফারেন্স গণনাকে 0-এর বেশি রাখতে পারে। এছাড়াও, ভেরিয়েবল বৃত্তাকার রেফারেন্সের একটি অংশ হতে পারে — আবর্জনা সংগ্রহের সাথে CPython বেশিরভাগ ব্রেক চালু করে, কিন্তু সব নয়, এই ধরনের চক্র, এবং তারপরও শুধুমাত্র পর্যায়ক্রমে। পি>

__del__-এর জন্য বৈধ ব্যবহারের ক্ষেত্রে রয়েছে:উদাহরণস্বরূপ, যদি একটি বস্তু X Y উল্লেখ করে এবং একটি গ্লোবাল ক্যাশে (ক্যাশে['X -> Y'] =Y) Y রেফারেন্সের একটি অনুলিপি রাখে তবে এটি X এর জন্য ভদ্র হবে। ক্যাশে এন্ট্রি মুছে ফেলার জন্য __del__।

আপনি যদি জানেন যে ডেস্ট্রাক্টর একটি প্রয়োজনীয় ক্লিনআপ প্রদান করে, আপনি এটিকে সরাসরি কল করতে চাইতে পারেন, x.__del__()।


  1. পাইথনে কিভাবে \B রেগুলার এক্সপ্রেশন কাজ করে?

  2. পাইথনে কিভাবে [\d+] রেগুলার এক্সপ্রেশন কাজ করে?

  3. পাইথন ফাইলগুলিতে আন্ডারস্কোর _ কীভাবে কাজ করে?

  4. কিভাবে mkdir -p পাইথনে কাজ করে?