Satura rādītājs
In Python ir tā sauktās "burvju" metodes, tas ir, metodes, kas ir konstruētas un kurām ir īpašs nosaukums un kuras tiek izsauktas tikai noteiktos apstākļos, jo šo metožu tieša izsaukšana programmas ietvaros nav parasta.Celtnieki
Metode __tajā__ tā ir atbildīga par konstruktoru, tas ir, tā inicializēs atribūtu sēriju un izpildīs kodu, ko mēs definējam brīdī, kad tiek izveidots klases objekts, ko sauc par "__init__" ar diviem pasvītrojumiem sākuma vārda sākums un beigas, tad jums jau ir atbilstoša sintakse Python uztver to kā "burvju" metodi un zini, ka tā ir jāizpilda, paraugoties uz klasi.
Konstruktors sasniedz to, ka tā vietā, lai inicializētu objektu, rīkojieties šādi:
>>> f = FooBar () >>> f.init ()
Jau ievietojot šo kodu, objekts ir inicializējis savus atribūtus tikai, izmantojot:
>>> f = FooBar ()
Kā redzat, tas ir svarīgs ietaupījums kodēšanas laikā un palīdzība gadījumā, ja mēs aizmirstam inicializēt objektu.
Konstruktoru izveide
Izveidojiet konstruktoru Python Tas ir pavisam vienkārši, mums vienkārši jānosaka metode un jāpievieno, kas jādara, kad objekts ir izveidots, apskatīsim piemēru:
Kas notiek, ja mēs vēlamies, lai atribūti tiktu dinamiski inicializēti, pārrakstīsim metodi šādi:
klase FooBar: def __init __ (self, value = 42): self.somevar = vērtība
Izveidojot izvēles parametru, mēs varam nodot vērtību, ja mēs to nenodosim, tā noklusējuma vērtība būs 42.
Programmas izpilde būtu šāda:
>>> f = FooBar ('Šis ir konstruktora arguments') >>> f.somevar 'Šis ir konstruktora arguments'
Tādā veidā mēs esam padarījuši savu konstruktoru dinamisku, lai mēs varētu saviem objektiem piešķirt dažādus atribūtus atkarībā no mūsu vajadzībām programmas ietvaros.
Konstruktoru pārrakstīšana
Ir gadījumi, kad mums ir jāmanto no super klasēm, tāpēc dažreiz mums ir jāpārraksta konstruktors. Apskatīsim šādu piemēru, lai saprastu, kas tas ir:
>>> b = Putns () >>> b.eat () Aaaah … >>> b.eat () Nē, paldies!
Kas notiks, ja mēs mantosim šo klasi, aplūkosim šādu kodu:
klases SongBird (Bird): def __init __ (self): self.sound = 'Squawk!' def sing (self): drukāt sevi.skaņa
Mēs vadām nelielu programmu:
>>> sb = SongBird () >>> sb.sing () Squawk!
Tagad, ja mēs izsauksim metodi eat (), mēs redzēsim kļūdu:
>>> sb.eat () Traceback (pēdējais zvans): Fails "", 1. rinda, in? Failā "birds.py", 6. rindā, ēdiet, ja esat izsalcis: AtribūtsKļūda: SongBird instancē nav atribūta "izsalcis"
Izņēmums mums norāda, ka izsalkušais atribūts neeksistē, tāpēc mums ir jāsauc mūsu konstruktora superklases konstruktors:
klases SongBird (Bird): def __init __ (self): Bird .__ init __ (self) self.sound = 'Squawk!' def sing (self): drukāt sevi.skaņa
Tagad, izpildot kodu, viss darbosies bez problēmām:
>>> sb = SongBird () >>> sb.sing () Squawk! >>> sb.eat () Aaaah … >>> sb.eat () Nē, paldies!
Ar to mēs pabeidzam apmācību, mēs jau zinām, kā pamata veidā izmantot __init__ metodi un kā to izdarīt, kad mums ir jāiemanto no augstākas klases.Vai jums patika šī apmācība un palīdzējāt tai?Jūs varat apbalvot autoru, nospiežot šo pogu, lai sniegtu viņam pozitīvu punktu