مخرب ها (Destructors)

مخرب‌ نقطه مقابل سازنده‌ بوده و متد خاصی است که هنگام تخریب یک شیء فراخوانی می‌شود. اشیاء از حافظه کامپیوتر استفاده می‌کنند و اگر پاک نشوند ممکن است با کمبود حافظه مواجه شوید. می‌توان از مخرب‌ برای پاک کردن منابعی که در برنامه مورد استفاده قرار نمی‌گیرند استفاده کرد. معمولاً پایتون به صورت اتوماتیک از زباله روب (garbage collection) برای پاک کردن حافظه استفاده می‌کند و لازم نیست شما به صورت دستی اشیا را از حافظه پاک کنید. دستور نوشتن مخرب کمی با سازنده متفاوت است :

def __del__(self):
    code to execute

در تعریف مخرب از متد جادویی ()__del__ استفاده می شود. برنامه زیر نحوه فراخوانی سازنده و مخرب را نشان می‌دهد :

  1: class Test:
  2:     
  3:     def __init__(self):                  
  4:         print("Constructor was called.");
  5: 
  6:     def __del__(self):                   
  7:         print("Destructor was called."); 
  8:                                  
  9: x1 = Test();
 10: del x1;
Constructor was called.
Destructor was called.

در کلاس Test یک سازنده و یک مخرب تعریف شده است. وقتی یک نمونه از کلاس ایجاد می‌کنیم سازنده فراخوانی شده و پیغام مناسب نمایش داده می‌شود. برای فراخوانی مخرب و حذف شیء از کلمه کلیدی del استفاده می شود، کاری که در خط 10 انجام داده ایم.