logo

Kas ir pīles rakstīšana Python?

Šajā apmācībā mēs uzzināsim par pīļu rakstīšanu. Tas ir populārs termins Python, un tas nāk no sakām: 'Ja tā staigā kā pīle, peld kā pīle, izskatās kā pīle, tad tai droši vien vajadzētu būt pīlei.'

Iepriekš minētais apgalvojums dod priekšstatu par pīles identificēšanu. Šeit mums nav nepieciešama pīles genoma secība. Mēs izdarām secinājumus pēc tā uzvedības un ārējās izpausmes.

Mēs apspriedīsim, ko īsti nozīmē pīles rakstīšana Python programmēšanā.

Python seko EAFP (Vieglāk lūgt piedošanu nekā atļauju), nevis LBLY (Look Before You Leap) filozofija. EAFP ir zināmā mērā saistīts ar 'pīles rakstīšanas' stilu.

Dinamiskā vai statiskā rakstīšana

Galvenais iemesls pīles rakstīšanas izmantošanai ir atbalsts dinamiskai rakstīšanai Python programmēšana . Programmā Python mums nav jānorāda mainīgā datu tips, un mēs varam atkārtoti piešķirt dažādu datu tipu vērtības vienam un tam pašam mainīgajam turpmākajā kodā. Apskatīsim šādu piemēru.

Piemērs -

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

Izvade:

ja pa rudyard kipling rindas pa rindiņai skaidrojumu
 

Kā redzams iepriekš minētajā kodā, mainīgajam x mēs piešķīrām veselu skaitli, padarot to no starpt veids. Pēc tam tam pašam mainīgajam mēs piešķīrām virkni un sarakstu. Python interpretators pieņem viena un tā paša mainīgā datu tipu izmaiņas. Tā ir dinamiska rakstīšanas darbība.

Daudzas citas programmēšanas valodas, piemēram, Java, swift ir statiskā tipa. Mums ir jādeklarē mainīgais ar datu tipiem. Tālāk esošajā piemērā mēs cenšamies darīt to pašu, izmantojot Swift, nevis Python.

Piemērs -

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

Iepriekš minēto kodu nevar apkopot, jo nevarējām piešķirt virkni Swift valodā. Jo mainīgs a tika deklarēts kā vesels skaitlis.

java parsēšanas virkne uz int

Pīļu mašīnrakstīšanas jēdziens

Iepriekš mēs apspriedām, ka Python ir dinamiska tipa valoda. Tomēr mēs varam izmantot dinamisko pieeju ar pielāgotiem datu veidiem. Sapratīsim šādu piemēru.

Piemērs -

 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) 

Izvade:

 Compiling Running Spell Check Convention Check 

Iepriekš minētajā kodā mēs esam izveidojuši a VisualStudio klase, kurai tas ir jādara izpildīt() metodi. Darbvirsmas klasē mēs esam nodevuši ide kā argumentu kodā (). An tas iet ir objekts VisualStudio klasē. Ar ide palīdzību mēs piezvanījām uz izpildīt() VisualStudio klases metode.

Apskatīsim citu piemēru.

Piemērs - 2

 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()) 

Izvade:

 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' 

Iepriekš minētajā kodā Duck klases gadījums tiek atspoguļots, izsaucot the duck_testing funkciju. Tas notiek arī ar Sparrow klasi, kas īsteno peldēt () funkciju. Bet krokodilu klases gadījumā tas neizdodas pīļu testēšanas novērtējumā, jo tas neīsteno peldēt () funkciju.

Kā pīles rakstīšana atbalsta EAFP

Pīles rakstīšana ir vispiemērotākais EAFP stils, jo mums nav jākoncentrējas uz 'tips' no objekta. Mums tikai par to jārūpējas uzvedība un spēja . Apskatīsim šādus apgalvojumus.

Kad mēs redzam daudz if-else bloku, tas ir LBYL kodēšanas stils.

jauna līnija python

Bet, ja mēs redzam daudz mēģinājumu, izņemot blokus, tad, visticamāk, tas ir EAFP kodētājs.