Menentukan Kekosongan Penjana Sebelum Lelaran
Apabila bekerja dengan penjana, ia boleh memberi manfaat untuk memastikan sama ada penjana kosong terlebih dahulu. Ini mengelakkan pemprosesan yang tidak perlu dan mengurangkan kerumitan kod.
Untuk mencapai matlamat ini, satu pendekatan ialah menggunakan fungsi mengintip, yang cuba mendapatkan semula elemen pertama penjana. Jika pengecualian StopIteration dinaikkan, ia menandakan penjana kosong. Berikut ialah pelaksanaan:
<code class="python">def peek(iterable): try: first = next(iterable) except StopIteration: return None return first, itertools.chain([first], iterable)</code>
Dalam fungsi ini:
Anda boleh menggunakan fungsi ini seperti berikut:
<code class="python">res = peek(mysequence) if res is None: # Generator is empty elif res[0] is None: # Generator is not empty but first element is None else: # Generator is not empty with non-None first element</code>
Pendekatan ini secara berkesan menentukan kekosongan penjana sebelum lelaran, menyediakan cara yang mudah untuk mengoptimumkan kod anda dan mengendalikan penjana kosong dengan anggun.
Atas ialah kandungan terperinci Bagaimana untuk Semak sama ada Penjana Kosong Sebelum Mengulang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!