logo

Čo je kačacie písanie v Pythone?

V tomto návode sa naučíme o písaní kačice. Je to populárny výraz v Pythone a pochádza z výroku, 'Ak to chodí ako kačica, pláva ako kačica, vyzerá ako kačica, potom by to pravdepodobne mala byť kačica.'

Vyššie uvedené vyhlásenie dáva nápad na identifikáciu kačice. Tu nepotrebujeme mať genómovú sekvenciu kačice. Svoje závery vyvodzujeme z jeho správania a vonkajšieho vzhľadu.

Budeme diskutovať o tom, čo presne znamená písanie kačice v programovaní v Pythone.

Python nasleduje EAFP (Jednoduchšie požiadať o odpustenie ako povolenie) skôr ako LBLY (Pozri sa predtým, než skočíš) filozofia. EAFP je do istej miery spojená so štýlom „kačacieho písania“.

Dynamické vs. statické písanie

Hlavným dôvodom používania kačacie písanie je poskytnúť podporu pre dynamické písanie Programovanie v Pythone . V Pythone nemusíme špecifikovať typ údajov premennej a v ďalšom kóde môžeme priradiť rôzne hodnoty typu údajov k rovnakej premennej. Pozrime sa na nasledujúci príklad.

Príklad -

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

Výkon:

spúšťanie skriptov v linuxe
 

Ako môžeme vidieť vo vyššie uvedenom kóde, priradili sme celé číslo premennej x, čím sme z nej urobili int typu. Potom sme rovnakej premennej priradili reťazec a zoznam. Python interpret akceptuje zmeny dátových typov tej istej premennej. Toto je dynamické správanie pri písaní.

Mnoho ďalších programovacích jazykov, ako je Java, swift, je statického typu. Musíme deklarovať premennú s typmi údajov. V nižšie uvedenom príklade sa snažíme urobiť to isté pomocou Swift namiesto Pythonu.

Príklad -

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

Vyššie uvedený kód nie je možné skompilovať, pretože sa nám nepodarilo priradiť reťazec v jazyku Swift. Pretože variabilné a bol deklarovaný ako celé číslo.

stiahnite si prehrávač médií youtube vlc

Koncept písania kačíc

Predtým sme diskutovali o tom, že Python je dynamický typovaný jazyk. Môžeme však použiť dynamický prístup s vlastnými typmi údajov. Poďme pochopiť nasledujúci príklad.

Príklad -

 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) 

Výkon:

 Compiling Running Spell Check Convention Check 

Vo vyššie uvedenom kóde sme vytvorili a Vizuálne štúdio trieda, ktorá musí vykonať () metóda. V triede desktop sme odovzdali ide ako argument v kóde (). An ide je predmetom Vizuálne štúdio trieda. S pomocou ide sme zavolali na vykonať () metóda triedy VisualStudio.

nastavenie cesty pythonu

Pozrime sa na ďalší príklad.

Príklad - 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()) 

Výkon:

 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' 

Vo vyššie uvedenom kóde sa inštancia triedy Duck odráža volaním kačacie_testovanie funkciu. Stáva sa to aj s triedou Sparrow, ktorá implementuje plávať () funkciu. Ale v prípade triedy Crocodile zlyhá pri testovaní kačice, pretože neimplementuje plávať () funkciu.

Ako písanie kačíc podporuje EAFP

Kačacie písanie je najvhodnejším štýlom pre EAFP, pretože sa nemusíme sústrediť na 'typ' objektu. Len sa o ňu musíme starať správanie a schopnosti . Pozrime sa na nasledujúce vyhlásenia.

Keď vidíme veľa blokov if-else, potom ide o štýl kódovania LBYL.

Ale ak vidíme veľa try-okrem blokov, potom je to pravdepodobne kodér EAFP.