Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Pemulangan dan Hasil Berfungsi dalam Penjana Python?
Pulangan dan Hasil dalam Penjana Python
Dalam Python sebelum versi 3.3, menggunakan kedua-dua penyataan pulangan dan hasil secara serentak dalam definisi fungsi penjana akan mengakibatkan ralat. Walau bagaimanapun, tingkah laku ini telah berubah dalam Python 3.3.
Pertimbangkan kod berikut:
<code class="python">def f(): return 3 yield 2</code>
Panggilan x = f() akan mencipta penjana dan x.__next__() akan menaikkan Pengecualian StopIteration. Tingkah laku ini berbeza daripada hanya pulangkan 3, yang akan mengembalikan nilai 3.
Ini kerana dalam Python 3.3, kembalikan
Selain itu, hasil daripada membolehkan penjana делегировать kepada penjana lain. Pertimbangkan contoh berikut:
<code class="python">def f(): return 1 yield 2 def g(): x = yield from f() print(x) for _ in g(): pass</code>
Kod ini mencetak 1. g mewakilkan pelaksanaan kepada f, dan nilai yang dikembalikan oleh f (iaitu, 1) diberikan kepada x. Walau bagaimanapun, pernyataan hasil 2 dalam f tidak dilaksanakan kerana pelaksanaan telah diwakilkan kepada g.
Atas ialah kandungan terperinci Bagaimanakah Pemulangan dan Hasil Berfungsi dalam Penjana Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!