Kursus Pengembangan Python Lanjutan
Bab
>
Tingkat
Fungsi Lanjutan
Fungsi Bersarang
Tujuan
Kumpulkan, redistribusikan, dan simpan kain yang diproduksi oleh mesin dengan menggunakan fungsi bersarang.
Terkadang Anda mungkin ingin menempatkan fungsi di dalam fungsi lain untuk memperluas kemampuan fungsi tersebut. Ini disebut Fungsi Bersarang atau Fungsi Dalam, yang memiliki berbagai kegunaan, mulai dari membuat kode sederhana yang dapat digunakan kembali di dalam sebuah fungsi, hingga melindungi fungsi Anda dari manipulasi eksternal.
Di dalam bengkel terdapat beberapa mesin pembuat kain, beberapa memiliki kain yang siap untuk disimpan, yang lainnya memerlukan benang untuk menyelesaikan produksi kain. Masing-masing mesin memiliki karpet berwarna "red" atau "green" di depannya yang akan menunjukkan cara penggunaannya. Di editor kode, sebuah fungsi akan ditulis yang memungkinkan kita untuk mengoperasikan mesin dan mengambil atau memasukkan material dari mesin.
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()
Fungsi tersebut bernama operate_machine dan mengambil argumen bernama color. Tergantung pada karpet berwarna apa yang ada di depan mesin, memasukkan "red" atau "green" sebagai argumen akan mengubah operasi mesin, memungkinkan Anda untuk memasukkan atau mengambil item.
Di dalam fungsi tersebut, Anda akan menemukan dua Fungsi Bersarang, bernama collect_cloth() dan place_thread() yang digunakan untuk tujuan yang telah dijelaskan pada nama mereka. Baris-baris kode yang diperlukan untuk menjalankan aksinya masih belum ada. Pada collect_cloth() tambahkan baris player.collect("cloth") yang diikuti oleh player.speak("Quilt is ready for storage") dan pada place_thread() tambahkan baris player.place("thread") yang diikuti oleh player.speak("Machine needed more materials").
Setelah baris-baris kode yang hilang ditambahkan ke Fungsi Bersarang, berjalanlah ke tanda X terang di depan peti dan ambil "thread" yang akan digunakan pada mesin, seperti ini player.collect("thread").
Berjalanlah ke tanda X gelap di dalam bengkel dan gunakan fungsi khusus operate_machine sambil menghadap ke mesin-mesin tersebut. Tambahkan "red" atau "green" sebagai argumen tergantung pada warna karpet tempat tanda X berada, misalnya: operate_machine("red"). Ini akan memungkinkan Anda untuk memasang benang dan mengambil kain.
Setelah Anda mengumpulkan semua kain, berjalanlah ke tanda X emas di sebelah peti di bagian belakang dan gunakan fungsi place() untuk menyimpan kain. Buatlah variabel bernama cloths, tambahkan jumlah kain yang telah Anda kumpulkan ke dalamnya, dan simpan di peti untuk menyelesaikan level, seperti ini: player.place(cloths).