Pythoni saagise ja Pythoni tootluse erinevus

Saagikusavaldust kasutatakse Pythonis generaatorite määratlemiseks. Nii et enne kui hakkame uurima, mida täpselt saak annab, peame kõigepealt mõistma generaatorite kontseptsiooni. Generaatoritel on Pythonis oluline roll ja kui olete Pythoni programmeerimises sügavam, siis on tõenäoline, et olete Pythoni generaatoritega juba koostööd teinud. Generaatoreid kasutatakse iteraatorite loomiseks Pythonis, kuid erineva lähenemisviisiga.

Pythoni generaatorid on funktsioonid, mis annavad tulemuste jada ning mida saab peatada ja dünaamiliselt jätkata. Generaatorid lisati esmalt valikulise funktsioonina Python 2.2 ja muudeti standardiks Python 2.3-s. Kuigi generaatorite funktsioonid olid piisavalt võimsad, parandati neid Python 2.5-s märkimisväärselt.

Kui generaatorid lisati Python 2.2-sse tagasi, siis tõi see tagasiühilduvuse jaoks kasutusele uue märksõna “tootlus”, mille jaoks pidime generaatorid generaatorite importimiseks moodulist _future_ importima. Seda muudeti Pythoni versioonis 2.3, kui generaatorid said standardiks ja see polnud enam vajalik.

Saagikusavaldus peatab funktsiooni täitmise ja saadab väärtuse tagasi helistajale, samal ajal kui olekut salvestatakse ja hiljem jätkatakse, mis tähendab, et kogu generaatori enda tööd saab pärast tagastatava väärtuse saamist ikkagi jätkata. Tagastamisavaldus lõpetab funktsiooni täitmise ja saadab väärtuse helistajale tagasi. Ilma selleta ei anna teie funktsioon midagi tagasi. Vaatame lähemalt, millal kasutada saagikust ja millal kasutada Pythonis tootlust, et paremini mõista nende kahe erinevust.

Mis on Python Yield?

Saagikusertifikaati kasutatakse Pythoni generaatorites funktsiooni tagastamise asendamiseks, et saata väärtus helistajale tagasi ilma kohalikke muutujaid hävitamata. Et paremini mõista, millist rolli tootlusavaldus Pythoni programmeerimisel mängib, peate mõistma, mis on generaatorid.

Generaatori funktsioone toodetakse määratluse järgi nagu tavalisi funktsioone, kuid need sisaldavad väljastust "saagis". See algab märksõnaga "saagikus", mis täpsustab helistajale tagastatava generaatoriobjekti. Generaator on Pythoni erifunktsioon, mis tagastab helistajale generaatoriobjekti, mitte andmeväärtuse. Saagise märksõnal on ainulaadne võime funktsiooni täitmist peatada, salvestada olekut ja hiljem jätkata.

Mis on Python Return?

Tagastamisteade väljub funktsioonist erinevalt tootluse teatisest, andes väärtuse helistajale tagasi. Funktsioonid tagastavad helistajatele väärtuse ja protseduurilisema iseloomuga asjad ei tagasta otseselt midagi. Kuigi funktsioonil võib olla mitu tagasitulekut, saab funktsiooni kutsumise korral kutsuda ainult ühe neist.

Tavaliselt ilmub tagastamisavaldus funktsiooniploki lõppu, et tagastada kõigi selles funktsioonis sisalduvate avalduste täitmise lõpptulemus. Siiski võib funktsiooniplokis ilmneda ka varem, et peatada kõigi selle ploki järgmiste avalduste täitmine. See jätkub kohe helistaja juures programmi täitmisega. Kui väärtust ei täpsustata, on Pythoni samaväärne tagastamisobjekti tüüp „Puudub”.

Pythoni saagise ja tagastamise erinevus

  1. Pythoni saagikuse ja tagasitulekuga seotud põhitõed

    • Saagikusertifikaati kasutatakse Pythoni generaatorites funktsiooni tagastamise asendamiseks, et saata väärtus helistajale tagasi ilma kohalikke muutujaid hävitamata. Generaator on Pythoni erifunktsioon, mis tagastab helistajale generaatoriobjekti, mitte andmeväärtuse.
    • Tagastamisteade väljub funktsioonist erinevalt tootluse teatisest, andes väärtuse helistajale tagasi. Tavaliselt ilmub tagastamisavaldus funktsiooniploki lõppu, et tagastada kõigi selles funktsioonis sisalduvate avalduste täitmise lõpptulemus. Kõik funktsioonid tagastavad väärtuse ja kui väärtust pole määratud, tagastab väärtus „Puudub”.
  1. Generaatorid vs Pythoni saagise ja tagastamise funktsioonid

    • Saagikusavaldust kasutatakse otsesõnu Pythoni generaatoritega. Süntaktiliselt on generaator funktsioon saagisega. Kuigi funktsioonil võib olla mitu tagasitulekut, saab funktsiooni kutsumise korral kutsuda ainult ühe neist.
    • Erinevalt funktsioonist, mis naaseb ainult üks kord, võivad generaatorid täitmise peatada ja anda vahetulemusi. Iga generaator on määratletud funktsioonina, kuid tagastamise märksõna asemel kasutatakse funktsiooniplokis tootluse märksõna, mis näitab, et tagastatav väärtus on ainult ajutine ja kogu generaatori saab jätkata ka pärast tagastamisväärtuse saamist.
  1. Pythoni saagise täitmine ja tagastamine

    • Tagastamisavaldus lõpetab funktsiooni täitmise ja saadab väärtuse tagasi helistajale. Funktsioonid tagastavad helistajatele väärtuse ja protseduurilisema iseloomuga asjad ei tagasta otseselt midagi. Põhimõtteliselt on see funktsioonist väljumine ja kõigi kohalike väärtuste hävitamine.
    • Saagikuseisund seevastu asendab funktsiooni tagastamise väärtuse, et peatada selle täitmine, ja saadab väärtuse tagasi helistajale, hävitamata kohalikke muutujaid. Kuid erinevalt tagastamisfunktsioonist jätkub saagis funktsiooni täitmist sealt, kus see pooleli jäeti.

Pythoni saagis vs tagasitulek: võrdlusdiagramm

Pythoni saagikuse ja tootluse kokkuvõte

Süntaktiliselt on saagikus märksõna, mida saab kasutada samamoodi nagu tagasisõna, välja arvatud juhul, kui tagastamisavaldus lõpetab teie funktsiooni täitmise ja saadab helistajale tagasi väärtuse. Tagastamise avalduse funktsioon on sisendite kogumine ja helistajale midagi tagastada. Erinevalt tagastamisest kasutatakse tootlusavaldust generaatorite määratlemiseks, asendades funktsiooni tagastusväärtuse, et peatada selle täitmine, hoides kohalikud muutujad puutumata, samas kui tagastamisavaldus hävitab kõik kohalikud muutujad.