Dalam Python, takrifan generator dilakukan dengan bantuan pernyataan hasil. Jadi sebelum kita masuk ke butiran tentang apa sebenarnya hasil digunakan, adalah penting untuk memahami gambaran keseluruhan penjana. Jika anda baru menggunakan Python, ada kemungkinan besar anda pernah menggunakan penjana Python sebelum ini. Penjana memainkan peranan penting dalam Python. Dalam Python, iterator boleh dijana menggunakan penjana, tetapi prosesnya mengambil bentuk yang sedikit berbeza.
Penjana Python ialah fungsi yang boleh menjeda dan menyambung semula secara dinamik serta mencipta urutan hasil. Mereka juga boleh digunakan untuk menjana nombor rawak. Dalam Python 2.2, penjana pertama kali diperkenalkan sebagai ciri pilihan. Dalam Python 2.3, mereka dikuatkuasakan. Fungsi penjana telah banyak dipertingkatkan dalam Python 2.5, walaupun ia sudah mempunyai fungsi yang mencukupi.
Untuk mengekalkan keserasian ke belakang, penambahan penjana dalam Python 2.2 menghasilkan pengenalan kata kunci baharu dipanggil “hasil”. Untuk menggunakan penjana, kita perlu mengimportnya daripada modul _future_. Apabila penjana menjadi lalai dalam keluaran Python 2.3, ini telah diubah untuk mencerminkan fakta bahawa perubahan itu tidak lagi diperlukan.
Gunakan pernyataan hasil untuk menghentikan sementara pelaksanaan fungsi, yang kemudiannya mengembalikan nilai kepada pemanggil sambil menyimpan keadaan fungsi untuk pemulihan kemudian. Ini bermakna keseluruhan penjana masih boleh dimulakan semula selepas mendapat nilai pulangan. Pelaksanaan fungsi ditamatkan dengan pernyataan pulangan, yang juga mengembalikan nilai kepada orang yang memanggil fungsi tersebut. Jika tiada, fungsi anda tidak akan mengembalikan apa-apa.
Dalam penjana Python, pernyataan hasil menggantikan fungsi return untuk mengembalikan nilai kepada orang yang memanggil penjana tanpa memadam sebarang pembolehubah setempat. Untuk lebih memahami fungsi pelaksanaan pernyataan hasil dalam pengaturcaraan Python, anda perlu membiasakan diri dengan penjana terlebih dahulu.
Perbezaan antara fungsi generator dan fungsi normal ialah terdapat pernyataan "hasil" dalam definisi fungsi generator. Ia bermula dengan kata kunci "hasil", yang mengenal pasti objek penjana untuk dikembalikan kepada sesiapa yang memanggil fungsi ini.
Dalam Python, jenis fungsi tertentu yang dipanggil "penjana" tidak mengembalikan nilai data kepada orang yang memanggil fungsi itu, sebaliknya mengembalikan objek penjana yang lain. Dengan bantuan kata kunci hasil, anda boleh menghentikan sementara pelaksanaan fungsi, menyimpan keadaan dan menyambung semula fungsi itu kemudian.
Lihat contoh di bawah -
# Use of yield def printresult(String): for i in String: if i == "p": yield i # Initializing string String = "Happy Birthday" ans = 0 print ("The number of 'p' in word is: ", end = "" ) String = String.strip() for j in printresult(String): ans = ans + 1 print (ans)
The number of 'p' in word is: 2
Apakah Python Return?
Berbeza dengan penyataan hasil, penyataan return menyebabkan fungsi ditamatkan sambil menghantar nilai kembali ke fungsi yang memanggilnya. Fungsi yang lebih bersifat prosedural tidak mengembalikan apa-apa secara eksplisit kepada pemanggil, sebaliknya mengembalikan nilai yang dihantar semula ke fungsi panggilan. Walaupun fungsi boleh mempunyai berbilang penyataan pulangan, hanya satu daripadanya boleh dipanggil untuk setiap panggilan ke setiap penyataan tersebut.
Pernyataan return hampir selalu diletakkan di hujung blok fungsi, tujuannya adalah untuk mengembalikan hasil akhir pelaksanaan semua pernyataan yang terkandung dalam fungsi. Walau bagaimanapun, pernyataan return juga mungkin muncul sebelum blok fungsi untuk menghentikan pelaksanaan semua pernyataan berikutnya dalam blok. Ini boleh berlaku jika ia digunakan untuk menghalang pelaksanaan fungsi. Ini menyebabkan pemanggil segera memulakan semula pelaksanaan program. Apabila tiada nilai diberikan untuk objek return, jenis objek return "None" adalah bersamaan dengan yang dalam Python.
Contoh berikut menunjukkan penggunaan return dalam Python -
# Show return statement class Test: def __init__(self): self.str = "Happy Birthday" self.x = "Pradeep" # This function returns an object of Test def fun(): return Test() # Driver code to test above method t = fun() print(t.str) print(t.x)
Happy Birthday Pradeep
Jadual berikut menyerlahkan perbezaan utama antara Hasil dan Pulangan dalam Python -
Agak asas | Output | Kembali |
---|---|---|
Asas | Dalam kebanyakan kes, anda perlu menggunakan fungsi hasil untuk menukar fungsi Python biasa kepada penjana. | Dalam kebanyakan kes, penamatan pelaksanaan diisyaratkan dengan menggunakan kata kunci pulangan, yang "mengembalikan" keputusan kepada pernyataan yang memanggilnya. |
Ciri-ciri | Ia menggantikan pengembalian fungsi untuk menjeda pelaksanaan fungsi tanpa kehilangan sebarang pembolehubah setempat. | Ia keluar dari fungsi dan mengembalikan nilai kepada pemanggilnya. |
Gunakan | Pemanggil akan menggunakan fungsi ini apabila penjana memberikan hasil perantaraan kepada pemanggil. | Apabila fungsi akan melepasi nilai, adalah perlu untuk menggunakan ini. |
Laksanakan | Kod yang ditulis selepas pernyataan hasil akan dilaksanakan dalam panggilan fungsi berikut. | Walaupun kod yang ditulis selepas penyata pemulangan tidak akan dilaksanakan. |
Kompilkan | Ia mempunyai keupayaan untuk berjalan beberapa kali. | Ia hanya berjalan sekali pada satu masa. |
hasil menjana objek penjana dan boleh mengembalikan berbilang nilai kepada pemanggil tanpa menamatkan atur cara, manakala pernyataan return digunakan untuk mengembalikan nilai kepada pemanggil dari dalam fungsi, yang menamatkan atur cara. Pernyataan pulangan digunakan untuk mengembalikan nilai dari dalam fungsi kepada pemanggil.
Atas ialah kandungan terperinci Apakah perbezaan antara Hasil dan Pulangan dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!