چرخه زندگی Object

  • مدرس: علی بیگدلی
  • تاریخ انتشار: 1402/05/03
  • تعداد بازدید: 138

چرخه حیات یک شی از ایجاد، دستکاری و تخریب آن است. مرحله اول چرخه حیات یک شی تعریف کلاس که به آن تعلق دارد. مرحله بعدی، نمونه سازی یک نمونه است، زمانی که نام __init__ نامیده می شود. حافظه اختصاص داده شده برای ذخیره نمونه است. درست قبل از این اتفاق، روش __new__ از کلاس نامیده می شود. این معمولا تنها در موارد خاص لغو می شود. پس از این اتفاق افتاده است، جسم آماده استفاده است. نکته:سپس کد دیگر می تواند با شیء با توابع در آن و دسترسی به ویژگی های آن ارتباط برقرار کند. در نهایت، استفاده از آن تمام خواهد شد و می تواند نابود شود. هنگامی که یک شیء نابود می شود، حافظه اختصاص داده شده به آن آزاد می شود و می تواند برای اهداف دیگر مورد استفاده قرار گیرد. تخریب یک شی وقتی رخ میدهد که شمارش مرجع آن صفر باشد. تعداد مرجع تعداد متغیرها و عناصر دیگر است که به یک شی اشاره می کنند. اگر چیزی به آن اشاره نکرده (شمارش مرجع صفر است)، هیچ چیز با آن ارتباط برقرار نمی کند، بنابراین می توان آن را با خیال راحت حذف کرد. در برخی موارد، دو (یا بیشتر) اشیا را می توان تنها با یکدیگر ارجاع کرد، و بنابراین می توان آن را نیز حذف کرد. بیانیه دل باعث کاهش تعداد مرجع یک شی توسط یک می شود و این امر اغلب منجر به حذف آن می شود. روش جادویی برای بیان دل __del__ است. فرآیند حذف اشیاء زمانی که آنها دیگر لازم نیست مجموعه جمع آوری زباله نامیده می شود. به طور خلاصه، تعداد مرجع ابعاد زمانی افزایش می یابد که یک نام جدید به آن اختصاص داده شود یا در یک کانتینر قرار گیرد (لیست، اصطلاح یا فرهنگ لغت). شمارش مرجع ابعاد زمانی کاهش می یابد که با دل حذف می شود، مرجع آن مجددا تعیین می شود یا مرجع آن از محدوده خارج می شود. هنگامی که تعداد مرجع یک شی به صفر برسد، پایتون آن را به طور خودکار حذف می کند.

a = 42  # Create object <42>
b = a  # Increase ref. count  of <42> 
c = [a]  # Increase ref. count  of <42> 
del a  # Decrease ref. count  of <42>
b = 100  # Decrease ref. count  of <42> 
c[0] = -1  # Decrease ref. count  of <42>

نکته:زبانهای سطح پایین مثل C این نوع از مدیریت حافظه خودکار را ندارند.