logo

Kas yra ančių rašymas Python?

Šioje pamokoje sužinosime apie ančių spausdinimą. Tai populiarus Python terminas, kilęs iš posakio: „Jei jis vaikšto kaip antis, plaukia kaip antis, atrodo kaip antis, tai tikriausiai turėtų būti antis“.

Aukščiau pateiktas teiginys suteikia idėją identifikuoti antį. Čia mums nereikia turėti anties genominės sekos. Išvadas darome remdamiesi jo elgesiu ir išorine išvaizda.

Aptarsime, ką tiksliai reiškia ančių spausdinimas Python programavimuose.

Python seka EAFP (Lengviau prašyti atleidimo nei leidimo), o ne LBLY (Pažvelk prieš šuolį) filosofija. EAFP yra šiek tiek susijęs su „ančių spausdinimo“ stiliumi.

Dinaminis ir statinis spausdinimas

Pagrindinė priežastis, kodėl naudojamas anties rašymas, yra dinaminio įvedimo palaikymas Python programavimas . „Python“ sistemoje mums nereikia nurodyti kintamojo duomenų tipo ir mes galime iš naujo priskirti skirtingas duomenų tipų reikšmes tam pačiam kintamajam kitame kode. Pažiūrėkime toliau pateiktą pavyzdį.

Pavyzdys -

 x = 12000 print(type(x)) x = 'Dynamic Typing' print(type(x)) x = [1, 2, 3, 4] print(type(x)) 

Išvestis:

Liūto ir tigro palyginimas
 

Kaip matome aukščiau pateiktame kode, kintamajam x priskyrėme sveikąjį skaičių, todėl jis tarpt tipo. Tada tam pačiam kintamajam priskyrėme eilutę ir sąrašą. Python interpretatorius priima to paties kintamojo duomenų tipų pakeitimus. Tai dinamiškas spausdinimo elgesys.

Daugelis kitų programavimo kalbų, tokių kaip „Java“, „swift“ yra statinio tipo. Turime deklaruoti kintamąjį su duomenų tipais. Žemiau pateiktame pavyzdyje mes bandome padaryti tą patį naudodami „Swift“, o ne „Python“.

Pavyzdys -

 # integer value assigning in JavaScript var a = 10 # Assinging string in swift a = 'Swift language' 

Aukščiau pateikto kodo negalima sukompiliuoti, nes negalėjome priskirti eilutės Swift kalba. Kadangi kintama a buvo paskelbtas sveikuoju skaičiumi.

puslapis žemyn klaviatūra

Anties spausdinimo samprata

Anksčiau aptarėme, kad Python yra dinamiška kalba. Tačiau galime naudoti dinaminį metodą su pasirinktiniais duomenų tipais. Supraskime šį pavyzdį.

Pavyzdys -

 class VisualStudio: def execute(self): print('Compiling') print('Running') print('Spell Check') print('Convention Check') class Desktop: def code(self, ide): ide.execute() ide = VisualStudio() desk = Desktop() desk.code(ide) 

Išvestis:

 Compiling Running Spell Check Convention Check 

Aukščiau pateiktame kode sukūrėme a VisualStudio klasė, kuri turi vykdyti () metodas. Stalinių kompiuterių klasėje kodą () perdavėme kaip argumentą. An tai eina yra objektas VisualStudio klasė. Su ide pagalba mes paskambinome vykdyti () VisualStudio klasės metodas.

Pažiūrėkime kitą pavyzdį.

Pavyzdys – 2

Salman Khan amžius
 class Duck: def swim(self): print('I'm a duck, and I can swim.') class Sparrow: def swim(self): print('I'm a sparrow, and I can swim.') class Crocodile: def swim_walk(self): print('I'm a Crocodile, and I can swim, but not quack.') def duck_testing(animal): animal.swim() duck_testing(Duck()) duck_testing(Sparrow()) duck_testing(Crocodile()) 

Išvestis:

 I'm a duck, and I can swim. I'm a sparrow, and I can swim. Traceback (most recent call last): File '', line 24, in File '', line 19, in duck_testing AttributeError: 'Crocodile' object has no attribute 'swim' 

Aukščiau pateiktame kode Duck klasės egzempliorius atsispindi skambinant ančių_testavimas funkcija. Taip pat atsitinka su Sparrow klase, kuri įgyvendina plaukti () funkcija. Tačiau krokodilų klasės atveju ji neatitinka ančių bandymų vertinimo, nes neįgyvendina plaukti () funkcija.

Kaip anties spausdinimas palaiko EAFP

Anties spausdinimas yra tinkamiausias EAFP stilius, nes mums nereikia susitelkti į 'tipas' objekto. Mums tereikia ja pasirūpinti elgesį ir gebėjimas . Pažiūrėkime šiuos teiginius.

Kai matome daug if-else blokų, tai yra LBYL kodavimo stilius.

Bet jei matome daug trynių, išskyrus blokus, greičiausiai tai yra EAFP koderis.