logo

Iznīcinātāji Python

Lietotāji izsauc Destructor par objekta iznīcināšanu. Python izstrādātājiem, iespējams, nav vajadzīgi iznīcinātāji, jo tie ir nepieciešami C++ valodā. Tas ir tāpēc, ka Python ir atkritumu savācējs, kura funkcija automātiski apstrādā atmiņas pārvaldību.

Šajā rakstā mēs apspriedīsim, kā darbojas Python iznīcinātāji un kad lietotāji tos var izmantot.

The __no__() funkcija tiek izmantota kā destruktora funkcija Python . Lietotājs var piezvanīt uz __no__() funkcija, kad visas atsauces uz objektu ir izdzēstas, un tas kļūst par savākto atkritumu.

Sintakse:

 def __del__(self): # the body of destructor will be written here. 

Lietotājiem arī jāņem vērā, ka atsauce uz objektiem tiek dzēsta arī tad, kad objekts iziet no atsauces vai kods beidzas.

Nākamajā piemērā mēs izmantosim funkciju __del__() un atslēgvārdu del, lai dzēstu visas atsauces uz objektu, lai iznīcinātājs iesaistītos automātiski.

Piemēram:

 # we will illustrate destructor function in Python program # we will create Class named Animals class Animals: # we will initialize the class def __init__(self): print('The class called Animals is CREATED.') # now, we will Call the destructor def __del__(self): print('The destructor is called for deleting the Animals.') object = Animals() del object 

Izvade:

 The class called Animals is CREATED. The destructor is called for deleting the Animals. 

Paskaidrojums -

Iepriekš minētajā kodā destruktors ir izsaucis, kad tiek dzēstas atsauces uz objektu vai pēc programmas pabeigšanas. Tas nozīmē, ka objekta atsauces skaits kļūst par nulli, nevis tad, kad objekts iziet ārpus darbības jomas. Mēs to izskaidrosim, parādot nākamo piemēru.

Varam arī pamanīt, ka destruktors tiek izsaukts pēc programmas beigām.

Piemērs:

 # We will create Class named Animals class Animals: # Initialize the class def __init__(self): print('The class called Animals is CREATED.') # now, we will Call the destructor def __del__(self): print('The destructor is called for deleting the Animals.') def Create_object(): print('we are creating the object') object = Animals() print('we are ending the function here') return object print('we are calling the Create_object() function now') object = Create_object() print('The Program is ending here') 

Izvade:

 we are calling the Create_object() function now we are creating the object The class called Animals is CREATED. we are ending the function here The Program is ending here The destructor is called for deleting the Animals. 

Tagad nākamajā piemērā mēs redzēsim, ka, izsaucot funkciju (), tā izveidos klases Zebra gadījumu, kas nodod sevi klasei Lion, kas pēc tam iestatīs atsauci uz klasi Zebra, un rezultātā tiks apļveida atsauce.

Piemērs:

 class Animals: # we will initialize the class def __init__(self): print(' The class called Animals is CREATED.') class Lion: def __init__(self, zebraa): self.zebra = zebraa class Zebra: def __init__(self): self.lion = Lion(self) def __del__(self): print('Zebra is dead') def function(): zebra = Zebra() function() 

Izvade:

 Zebra is dead 

Parasti Python atkritumu savācējs, kas tiek izmantots šāda veida ciklisku atsauču noteikšanai, arī noņems atsauci. Taču iepriekš minētajā piemērā pielāgotais iznīcinātājs tiek izmantots, lai atzīmētu šo vienumu kā nesavācamu.

java masīvs sarakstā

Vienkāršā valodā tas nozīmē, ka atkritumu savācējs nezina, kādā secībā objekts ir jāiznīcina, tāpēc atstāj tos. Tātad, ja lietotāju gadījumi ir iesaistīti šajā apļveida atsaucē, tie tiks saglabāti atmiņā tik ilgi, kamēr darbosies lietojumprogramma.

Secinājums

Šajā rakstā mēs izskaidrojām Python iznīcinātāju funkciju un to, kā lietotāji tos var izmantot, lai dzēstu objektus, kuru atsauces jau ir noņemtas no atmiņas.