Kursus Pembangunan Python Lanjutan
Bab
>
Tahap
Fungsi Lanjutan
Fungsi Polimorfik
Dalam bab ini kita akan meneroka jenis fungsi baru, pelbagai kegunaan untuknya dan bagaimana untuk memanfaatkannya semasa mengekod dalam Python.
Dalam tahap ini, kita memulakan dengan fungsi polimorfik. Terdapat fungsi yang boleh digunakan dengan pelbagai jenis data. Ini adalah seperti menggunakan fungsi yang sama untuk melakukan perkara yang berbeza, satu fungsi sejagat.

Objektif
Semak status tanaman dan anak babi, dan sahkan penghantaran bekalan menggunakan fungsi polimorfik.
Tak lama lagi, seharusnya ada beberapa tanaman yang perlu dituai supaya boleh dihantar untuk dijual. Anak babi juga perlu mendapat penghantaran makanan, ia adalah idea yang baik untuk melihat berapa banyak makanan yang perlu dipesan. Untuk mencapai tugas-tugas ini, anda boleh menggunakan fungsi polimorfik, dalam kes ini kita akan menggunakan fungsi len().
Fungsi polimorfik adalah fungsi yang boleh digunakan dengan pelbagai jenis data yang berbeza. Sebagai contoh, fungsi len() adalah fungsi yang digunakan untuk mengira panjang objek, objek-objek ini boleh merupakan jenis data yang berbeza seperti senarai, kamus dan juga rentetan. Mulakan dengan mengira kiraan pada tanda X yang lebih rendah di ladang sebelum beralih kepada tanda X yang lebih tinggi di gudang.
Terdapat beberapa anak babi di dalam sangkar berhampiran jalan, nama-nama mereka ialah "Peggle", "Peter", "Piper", "Pedro". Masukkan nama mereka ke dalam senarai supaya anda boleh mengira mereka. Seperti berikut: piglets = ["Peggle", "Peter", "Piper", "Pedro"] . Cipta pembolehubah bernama number untuk menyimpan panjang senarai dengan menggunakan fungsi len(), seperti ini: number = len(piglets).
Setelah anda menyiapkan senarai dan pembolehubah, berjalan ke tanda X gelap di hadapan kandang anak babi, hadapkan kandang dan gunakan fungsi speak untuk mengira anak babi menggunakan fungsi speak(). Gunakan pembolehubah number untuk mendapatkan hasil, seperti ini: player.speak("There are d% Piglets" % (number) )
Setelah selesai memeriksa anak babi, berjalan ke tanda X terang di ladang, hadapkan tanaman dan kira mereka. Terdapat tiga (3) jenis tanaman yang berbeza: "Tomatoes", "Pumpkins", "Eggplant". Kira berapa banyak tanaman yang tumbuh bagi setiap jenis dan simpan di dalam sebuah kamus, seperti berikut:
crops = {} crops["Tomato"] = number of tomato crops crops["Pumpkin"] = number of Pumpkin crops crops["Eggplant"] = number of Eggplant crops
Setelah anda mengisi kamus dengan nilai-nilai yang betul, gunakan fungsi speak() bersama-sama dengan fungsi len() untuk mengira bilangan jenis tanaman yang tersedia, seperti ini: player.speak("There are d% types of crops" % ( len(crops) ) ).
Setelah mengira kedua-dua anak babi dan tanaman, berjalan ke tanda X gelap pada tikar ungu untuk memeriksa pesanan tanaman yang akan dihantar. Terdapat sebuah pemalar pembolehubah bernama order yang menyimpan rentetan mengandungi pesanan untuk tanaman yang perlu dihantar. Kita perlu mengetahui apa pesanan tersebut dan berapa banyak pesanan yang kita ada, kita boleh melakukannya dengan menggunakan fungsi speak() dan mengurai rentetan serta menggunakan fungsi len().
player.speak( [*order] ) player.speak("There are d% orders of crops going out" % ( len(order) ) )
Dengan meletakkan pembolehubah rentetan di dalam tanda kurung dan * kita boleh mengaktifkan operator untuk mengurai rentetan tersebut, contohnya: [*string]. Apa yang dilakukan adalah mengambil sebuah rentetan dan memisahkan setiap aksara individu dan meletakkannya ke dalam sebuah senarai, contohnya: [*string] akan menghasilkan senarai ['s', 't', 'r', 'i', 'n', 'g']. Dalam kes penggunaan len() pada sebuah rentetan, ia akan mengira berapa banyak aksara dalam rentetan tersebut.
Untuk menyimpulkan latihan, berjalan ke tanda X emas di sebelah kanan gudang, dan tentukan berapa banyak paun makanan yang perlu dihantar untuk anak babi. Cipta sebuah pembolehubah bernama food, sebagai nilainya, gunakan pembolehubah number yang telah anda cipta sebelum ini dan darabkan dengan 35 untuk menentukan jumlah paun, seperti ini: food = number * 35.
Sewaktu menghadap gudang, gunakan fungsi speak() bersama-sama dengan pembolehubah food untuk menentukan jumlah makanan yang dihantar, seperti ini: player.speak("There are d% pounds of food coming in" % (food) ).