Coding for KidsCoding for Kids
Level KreatifTantanganPanduan Guru
Voting untuk fitur
Kursus Pengembangan Python Lanjutan
Bab
>
Tingkat

Dekorator
Rantai Dekorator

Tujuan

Hiasi atap dengan bendera berwarna dengan menggabungkan decorator.

Atap mendapatkan udara segar setelah selama ini terkurung di dalam dapur, beberapa baris belum diberi bendera. Akan sangat baik untuk memasangnya sementara kamu di sini, meskipun hal ini bisa jadi rumit karena kamu memerlukan berbagai bendera untuk menyusun sebuah baris. Kamu dapat mencapainya dengan menggabungkan decorators.

Decorators digabungkan dengan menggandakan tanda @, yaitu, memasang beberapa decorator pada satu fungsi. Sebagai contoh, ini memungkinkanmu menyisipkan satu fungsi di antara dua fungsi decorator:

# List untuk menambahkan bendera pada sebuah baris line = [] # Decorator untuk menambahkan bendera merah def red_flag(func): def add_flag(): line.append("red") player.speak("Dua bendera merah ditambahkan ke baris") func() line.append("red") return add_flag # Decorator untuk menambahkan bendera biru def blue_flag(func): def add_flag(): line.append("blue") player.speak("Dua bendera biru ditambahkan ke baris") func() line.append("blue") return add_flag # Fungsi yang didekorasi menambahkan baris dan bendera tengah @blue_flag @red_flag def middle_green(): line.append("green") player.speak("Sebuah bendera hijau telah ditambahkan ke baris")

Kode di atas menggambarkan sebuah fungsi dengan decorators yang digabungkan, decorators ini disisipkan ke dalam fungsi sehingga di kedua ujung baris dipasang bendera biru, lapisan dalamnya dipasang bendera merah dan akhirnya di tengah dipasang bendera hijau. Semua bendera tersebut ditambahkan ke dalam list bernama line, ini adalah metode yang akan digunakan untuk menyusun bendera pada baris-baris tersebut.

Mulailah dengan berjalan menuju tanda X berwarna emas dan menggunakan fungsi read() untuk memeriksa instruksi yang tertera pada papan petunjuk. Di sini akan diinformasikan bendera apa yang harus diletakkan di mana, dengan adanya tiga (3) jenis bendera berwarna berbeda: "red", "green" dan "blue". Setiap baris akan memiliki ketiga bendera tersebut, satu (1) di tengah baris, dua (2) di bagian dalam dan dua (2) di bagian luar, sehingga total menjadi lima (5) bendera per baris, mirip dengan baris yang sudah jadi di sisi kiri bawah peta.

Berjalanlah ke tanda X berwarna terang dan gunakan fungsi collect() untuk mengambil "flags" di dalam peti. Lanjutkan dengan berjalan ke tanda X berwarna gelap dan dari kiri ke kanan mulai menempatkan bendera sesuai urutan yang telah dijelaskan dalam instruksi yang kamu baca sebelumnya. Gunakan fungsi tengah untuk mencapainya, misalnya: middle_green() menghasilkan baris bendera seperti ini: ["blue", "red", "green" ,"red","blue" ]. Kemudian gunakan fungsi place() untuk menetapkan baris menggunakan list line, seperti ini: place(line).

Di antara setiap tanda X, bersihkan list line dengan menggunakan fungsi clear(), seperti ini: line.clear(), ini memungkinkanmu untuk menggunakan kembali list tersebut tanpa harus membuat yang baru untuk setiap baris. Tanda X terakhir di sebelah kanan memerlukan fungsi kustom:

@ @ def middle_custom(): line.append( Insert append ) player.speak("%s flag has been added to the line" % ( insert flag ))

Gunakan dua simbol @ untuk menambahkan decorators ke fungsi, lanjutkan dengan mengisi perintah append pada list dan warna bendera dalam string. Lakukan ini sesuai dengan instruksi pada papan petunjuk untuk menyelesaikan level.

Buku Kode