Uit de cursus: Essentiële training over Python

Een functie definiëren

- [Instructor] Functies zijn de basiseenheid van herbruikbare code in Python. Laten we dus eens kijken hoe ze werken. Hier in Komodo heb ik een werkexemplaar geopend van function.py uit hoofdstuk 7 van de oefenbestanden. Ik wil hier onderaan beginnen omdat dit relevant is en we nu meer context hebben om dit in meer detail te beschrijven. We hebben het al gehad over voorwaardelijke expressies en als en blokken en dat soort dingen. En dus wil ik gewoon wat gedetailleerder beschrijven hoe dit werkt. Dus je merkt dat het een if-verklaring is, en de dubbele punt is hier, en op dezelfde lijn hebben we een functie die naar main wordt genoemd. En dus, met een if-instructie, kun je de code op dezelfde regel hebben, zolang het maar één regel code is. Het wordt normaal gesproken afgekeurd, maar dit is een geval waarin het vaak op deze manier wordt gedaan. En dan hebben we hier deze voorwaardelijke uitdrukking die het gebruik van de dubbele gelijke vergelijkt met een test voor gelijkheid, voor waardegelijkheid. De speciale variabele naam met dubbele onderstrepingstekens aan weerszijden tegen een letterlijke snaar die hoofd zegt met dubbele onderstrepingen aan elke kant. Dus deze naamvariabele, deze speciale variabelenaam, retourneert de naam van de huidige module. Dus als dit bestand was opgenomen in een andere uitvoeringseenheid door de importinstructie, met andere woorden als iemand import en de naam van dit bestand had getypt, dan zou dit als een module worden uitgevoerd en deze naam zou hier de naam van de module hebben, maar het wordt niet uitgevoerd als een module. Niemand heeft het geïmporteerd en het loopt als de belangrijkste uitvoeringseenheid. En daarom is deze hoofdwaarde een speciale waarde die betekent "Nee, dit is niet belangrijk, dit is het hoofdbestand." En dus testen we daarop, en je zult later zien wanneer we beginnen te praten over modules hoe dit bijzonder handig kan zijn. Maar het wordt vaak voor dit doel gebruikt omdat dit hoofd aanroept, wat hierboven is gedefinieerd en dat is oké omdat je functie kunt aanroepen als het van tevoren is gedefinieerd, maar hoofd dan roept kitten die erna is gedefinieerd en dus als we dit niet hadden en we hadden geen functie hoofd, maar we hadden functie om erna te vinden, we zouden het niet kunnen noemen en dus is dat nodig voor declaraties, en Python ondersteunt geen declaraties. En dus is dit het standaardwerk daarvoor. En je zult veel zien, in feite, het is zo gewoon dat Komodo hier, het heeft code-voltooiing voor het. Als ik "als en twee onderstrepingstekens" typ, merk je dat er een aantal keuzes zijn en een daarvan is die coderegel precies en ik kan gewoon "main" typen, en boem, het codeert dat voor mij. Dat is alleen maar om je te laten zien hoe vaak dit patroon voorkomt, je zult dit veel zien, vooral in modules. Dus nu, als ik dit opsla en het uitvoer, zie je dat het zegt miauw, dat komt omdat dit als het hoofd aanroept, wat hier is, en deze hoofdmap roept kitten, wat een functie is die hier is gedefinieerd, en die de afdrukfunctie aanroept die miauw afdrukt. Nu ziet een functiedefinitie er als volgt uit. Het heeft het trefwoord def en vervolgens de naam van de functie en een paar haakjes en een dubbele punt en vervolgens een codeblok. We hebben dat patroon eerder gezien en dat komt heel, heel vaak voor. Ik kan, als ik dat wil, hier een variabele of een waarde of iets dergelijks plaatsen, ik kan het getal 5 erin zetten en dan hier beneden kan ik dat vastleggen door een variabele tussen de haakjes te plaatsen. Dus de haakjes worden gebruikt voor het doorgeven van parameters, en als ik dat wil, kan ik dit een f-string maken en kan ik die n afdrukken, en opslaan en uitvoeren, en nu wordt die 5 afgedrukt door die afdrukverklaring. En dus weet je natuurlijk dat als ik het verander in een 3, het daar een 3 zal afdrukken. Dus dat is hoe je parameters doorgeeft aan een functie en natuurlijk kun je in coma raken en meer dan één parameter doorgeven als je dat zou willen. En die zou je allemaal op dezelfde manier in de functie kunnen vastleggen. Alle functies retourneren ook een waarde. Dus, als in plaats daarvan hier, en laat ik die gewoon voor nu verwijderen omdat we dat niet gaan gebruiken. Als ik zou willen, zou ik kunnen zeggen dat x gelijk is aan kitten en dan zou ik de waarde van x kunnen afdrukken. En wanneer ik opsla en uitvoer, staat er geen omdat de functie niet expliciet een waarde retourneert. De waarde die het wel retourneert, is de speciale geen-waarde. Alle functies retourneren dus een waarde. Als u de waarde niet opgeeft, worden er geen geretourneerd. Als ik in plaats daarvan de string zou willen teruggeven, zou ik dat kunnen doen en nu zal deze gedrukte verklaring hier op regel 6 de miauw afdrukken. Python heeft dus geen onderscheid tussen een functie en een procedure. Sommige talen doen dat wel. Sommige talen beschouwen een functie als iets dat een waarde retourneert en een procedure als iets dat geen waarde retourneert. In Python retourneren alle functies een waarde, zelfs als de waarde geen is, dus er is geen onderscheid tussen functies en procedures. Python-functies zijn eenvoudig en krachtig. En we zullen in de rest van dit hoofdstuk in detail treden.

Inhoud