Yield adalah kata kunci terbina dalam Python yang mengembalikan nilai dari fungsi. Pelaksanaan fungsi tidak ditamatkan. Sebaliknya, ia mengembalikan nilai kepada pemanggil dan mengekalkan keadaan pelaksanaan fungsi. Pelaksanaan fungsi dilanjutkan dari penyataan hasil terakhir. Hasilnya membolehkan kita menghasilkan urutan nilai daripada satu nilai. Ia digunakan di dalam badan yang berfungsi. Fungsi yang mengandungi pernyataan hasil dikenali sebagai fungsi penjana.
Terdapat beberapa kelebihan untuk menghasilkan kata kunci. Sebagai contoh, ia mengawal peruntukan memori dan menyimpan keadaan pemboleh ubah tempatan. Walau bagaimanapun, ia meningkatkan kerumitan kod.
Artikel ini menerangkan penggunaan kata kunci hasil dengan contoh.
Sintaks Hasil
Sintaks hasilnya sederhana dan mudah. Hasil dimulakan dengan kata kunci hasil dan sintaks seperti berikut:
nilai hasilContoh
Sekarang, mari kita lihat contoh untuk memahami penggunaan dan hasil penyataan hasil. Secara tradisinya, kata kunci pengembalian menamatkan pelaksanaan program dan mengembalikan nilai pada akhir, sementara hasil mengembalikan urutan nilai. Ia tidak menyimpan nilai dalam memori dan mengembalikan nilainya kepada pemanggil pada waktu berjalan. Dalam contoh di bawah ini, fungsi penjana ditentukan untuk menentukan tahun lompatan. Lompatan adalah tahun itu apabila dibahagi dengan empat mengembalikan sifar sebagai baki. Kata kunci hasil mengembalikan nilai tahun lompat kepada pemanggil. Oleh kerana ia akan mendapat nilai tahun lompat, ia akan menghentikan pelaksanaan program, mengembalikan nilai, dan kemudian melanjutkan pelaksanaan dari mana ia dihentikan.
#menyatakan penjana untuk menentukan tahun lompatdef leapfunc (my_list):
untuk saya dalam senarai_ saya:
jika (i% 4 == 0):
#menggunakan hasil
hasil i
#menyatakan senarai tahun
year_list = [2010,2011,2012,2016,2020,2024]
cetak ("Mencetak nilai tahun lompat")
untuk x dalam leapfunc (senarai tahun):
cetak (x)
Pengeluaran
Hasilnya menunjukkan siri tahun lompatan.
Mari kita lihat contoh lain di mana fungsi penjana menghasilkan pelbagai nombor dan rentetan.
#menyatakan fungsi penjanadef myfunc ():
hasil "Mark"
hasil "John"
hasil "Taylor"
menghasilkan "Ivan"
hasil 10
hasil 20
hasil 30
hasil 40
hasil 50
# memanggil dan melakukan lelaran melalui fungsi penjana
untuk i di myfunc ():
#mencetak nilai
mencetak (i)
Pengeluaran
Mari kita laksanakan fungsi penjana untuk mengira dan mencetak nilai kubus bagi turutan nombor. Kami menjana nilai kubus dari 1 hingga 30.
#menyatakan fungsi penjana untuk mengira nilai kubusdef calcube ():
val = 1
# gelung tanpa had
Walaupun Betul:
#kubu kiub
hasil val * val * val
#menambah nilai sebanyak 1
val = val + 1
cetak ("Nilai kubus adalah:")
# memanggil fungsi penjana
untuk i di calcube ():
jika saya> 30:
rehat
mencetak (i)
Pengeluaran
Keluaran menunjukkan nilai kubus kurang dari 30.
Kesimpulannya
Yield adalah kata kunci terbina dalam Python yang tidak menghentikan pelaksanaan program dan menghasilkan rangkaian nilai. Sebagai perbandingan dengan kata kunci pulangan, kata kunci hasil menghasilkan pelbagai nilai dan pulangan kepada pemanggil. Artikel ini menerangkan Python Yield dengan contoh.