Edistynyt Python-kehityskurssi
Luku
>
Taso
Edistyneet funktiot
Sisäkkäiset funktiot
Tavoite
Kerää, jaa uudelleen ja siirrä koneiden tuottamaa kangasta käyttämällä sisäkkäisiä funktioita.
Joskus saatat haluta sijoittaa toimintoja toistensa sisälle laajentaaksesi toiminnon mahdollisuuksia. Näitä kutsutaan sisäkkäisiksi funktioiksi tai sisäfunktioiksi, ja niillä on monia käyttötarkoituksia, yksinkertaisesta uudelleenkäytettävästä koodista funktiossa koneiden suojaamiseen ulkoisilta manipulaatioilta.
Työpajassa on useita kangasta valmistavia koneita, joillakin on varastointiin valmista kangasta, kun taas toisilla tarvitaan lankaa kangasta loppuun valmistettaessa. Jokaisen edessä on joko "red" tai "green" tai vihreä matto, joka osoittaa miten konetta käytetään. Koodieditorissa kirjoitetaan funktio, joka sallii koneen käytön ja joko kerää tai sijoittaa koneen materiaalit.
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()
Funktio on nimetty operate_machine ja se ottaa muuttujan nimeltä color. Riippuen siitä, millä värisellä matolla koneen edessä ollaan, kun syötät argumenttina joko "red" tai "green", muuttuu koneen toiminta niin, että voit joko sijoittaa tai kerätä tarvikkeita.
Funktiossa on kaksi sisäkkäistä funktiota, nimeltään collect_cloth() ja place_thread(), joita käytetään nimensä mukaisiin tehtäviin. Niistä puuttuvat rivit, jotka ovat tarpeen toiminnon suorittamiseksi. Funktioon collect_cloth() lisätään rivi player.collect("cloth"), jota seuraa player.speak("Quilt is ready for storage"), ja funktioon place_thread() lisätään rivi player.place("thread"), jota seuraa player.speak("Machine needed more materials").
Kun puuttuvat koodirivit on lisätty sisäkkäisiin funktioihin, kävele valoon osoittavan X-merkin luokse koneen edessä ja kerää "thread", jota käytetään koneessa, kuten näin: player.collect("thread").
Kävele työpajan sisällä pimeiden X-merkkien luo ja käytä omaa funktiotasi operate_machine kääntyessäsi koneiden suuntaan. Lisää argumenttina joko "red" tai "green" riippuen siitä, millä värisellä matolla X-merkki sijaitsee, esimerkiksi: operate_machine("red"). Tämä sallii sinun sijoittaa lankaa ja kerätä kangasta.
Kun olet kerännyt kaiken kankaan, kävele kultaisen X-merkin luo laatikon takana ja käytä funktiota place() kankaan varastoimiseen. Luo muuttuja nimeltä cloths, lisää siihen keräämiesi kankaiden määrä ja sijoita se laatikkoon tason suorittamiseksi, kuten näin: player.place(cloths) .