Avanceret Python Udviklingskursus
Kapitel
>
Niveau
Avancerede Funktioner
Indlejrede funktioner
Mål
Indsaml, redistribuer og aflejre det stof, som maskinerne har produceret, ved at bruge indlejrede funktioner.
Nogle gange vil du ønske at placere funktioner inde i andre funktioner for at udvide den pågældende funktions kapaciteter. Disse kaldes indlejrede funktioner eller indre funktioner, og de har forskellige anvendelser, fra at skabe simpel, genanvendelig kode inde i en funktion til at beskytte dine funktioner mod ekstern manipulation.
Inde i værkstedet er der flere maskiner, der fremstiller stof; nogle har stof, der er klar til opbevaring, mens andre kræver tråd for at færdiggøre produktionen af stoffet. Hver maskine har et tæppe foran sig, enten "red" eller "green", som angiver, hvordan den skal bruges. I kodeeditoren vil der blive skrevet en funktion, som lader os betjene maskinen og enten indsamle eller placere materialer fra maskinen.
def operate_machine(color):
def collect_cloth():
# Collect Code
player.speak("Cloth is ready for storage")
def place_thread():
# Place Code
player.speak("Machine needed more materials")
if color == "green":
collect_cloth()
if color == "red":
place_thread()
Funktionen hedder operate_machine og tager et argument ved navn color. Afhængigt af hvilket farvet tæppe maskinen er foran, vil indtastning af enten "red" eller "green" som argument ændre maskinens funktion, så du enten kan placere eller indsamle elementer.
Inde i funktionen finder du to indlejrede funktioner, kaldet collect_cloth() og place_thread(), som bruges til de formål, deres navne antyder. De mangler linjer, der er nødvendige for at udføre deres handling: I collect_cloth() skal du tilføje linjen player.collect("cloth"), hvorefter player.speak("Quilt is ready for storage") kommer, og i place_thread() skal du tilføje linjen player.place("thread"), hvorefter player.speak("Machine needed more materials") kommer.
Når de manglende linjer er tilføjet til de indlejrede funktioner, skal du gå til det lyse X-mærke foran kassen og indsamle "thread", som skal bruges i maskinen, som vist her: player.collect("thread").
Gå til de mørke X-mærker inde i værkstedet, og brug den brugerdefinerede funktion operate_machine, mens du vender mod maskinerne. Tilføj enten "red" eller "green" som et argument, afhængigt af farvetæppet, som X-mærket er placeret på; for eksempel: operate_machine("red"). Dette gør det muligt for dig at placere tråden og indsamle stoffet.
Når du har indsamlet alt stoffet, skal du gå til det gyldne X-mærke ved siden af kassen bagved og bruge funktionen place() for at opbevare stoffet. Opret en variabel kaldet cloths, tilføj det antal stoffer, du har indsamlet, og opbevar det i kassen for at fuldføre niveauet, som vist her: player.place(cloths) .