Kata kunci yield
dalam Python digunakan untuk membuat penjana, jenis fungsi khas yang mengembalikan iterator. Tidak seperti fungsi biasa yang mengembalikan nilai tunggal dan tamat, fungsi penjana boleh menghasilkan pelbagai nilai, satu demi satu, dan boleh disambung semula dari mana ia ditinggalkan. Apabila pernyataan yield
ditemui, keadaan fungsi disimpan, dan nilai yang dihasilkan dikembalikan kepada pemanggil. Pelaksanaan fungsi dijeda sehingga nilai seterusnya diminta. Ini membolehkan lebih banyak operasi efisien memori dan pengendalian dataset besar atau urutan tak terhingga.
Menggunakan kata kunci yield
dalam fungsi python menawarkan beberapa faedah:
yield
menghasilkan nilai-nilai di-fly, ia membantu dalam menguruskan dataset atau urutan yang besar tanpa memuatkan segala-galanya ke dalam memori sekaligus. Ini amat bermanfaat apabila bekerja dengan fail besar atau aliran data pemprosesan.yield
membolehkan penjanaan urutan tak terhingga, seperti nombor fibonacci atau nombor perdana, tanpa membuat senarai besar dalam ingatan.yield
bermakna nilai hanya dihasilkan apabila diminta, membolehkan penilaian malas yang dapat meningkatkan prestasi dengan mengurangkan pengiraan yang tidak perlu.yield
boleh dirantai bersama untuk membuat saluran paip pemprosesan data yang cekap, yang berguna dalam tugas analisis data dan pemprosesan. Kata kunci yield
secara signifikan mengurangkan penggunaan memori dalam python dengan membenarkan penciptaan iterators yang menjana nilai-nilai di atas terbang dan bukannya menyimpannya dalam ingatan sekaligus. Apabila fungsi menggunakan yield
, ia menjadi penjana, yang menghasilkan nilai satu demi satu seperti yang diminta. Pendekatan ini berbeza dengan fungsi tradisional yang boleh mengembalikan senarai atau struktur data lain yang menyimpan semua elemen dalam ingatan secara serentak.
Sebagai contoh, jika anda ingin menjana urutan satu juta nombor, menggunakan pemahaman senarai akan menyimpan semua juta nombor dalam ingatan. Walau bagaimanapun, dengan menggunakan penjana dengan yield
hanya akan menjejaki keadaan semasa yang diperlukan untuk menghasilkan nombor seterusnya, yang biasanya menggunakan memori yang kurang. Ini amat bermanfaat dalam senario di mana dataset sangat besar atau bahkan tidak terhingga, kerana ia menghalang sumber memori yang tersedia.
Berikut adalah beberapa contoh praktikal menggunakan kata kunci yield
dalam pengaturcaraan Python:
Menjana urutan Fibonacci :
<code class="python">def fibonacci(): a, b = 0, 1 while True: yield a a, b = b, ab # Usage fib_gen = fibonacci() for _ in range(10): print(next(fib_gen))</code>
Contoh ini menunjukkan menghasilkan urutan Fibonacci selama -lamanya menggunakan yield
, mempamerkan bagaimana ia dapat mengendalikan urutan tak terhingga.
Membaca fail besar :
<code class="python">def read_large_file(file_path): with open(file_path, 'r') as file: for line in file: yield line.strip() # Usage file_gen = read_large_file('large_file.txt') for line in file_gen: print(line)</code>
Contoh ini menunjukkan bagaimana yield
boleh digunakan untuk membaca dan memproses garis besar garis mengikut baris, dengan itu menguruskan memori dengan cekap.
Membuat saluran paip untuk pemprosesan data :
<code class="python">def process_data(data): for item in data: # Some data processing yield item.upper() def filter_data(data): for item in data: if len(item) > 5: yield item # Usage raw_data = ['hello', 'world', 'python', 'programming', 'code'] processed_data = process_data(raw_data) filtered_data = filter_data(processed_data) for item in filtered_data: print(item)</code>
Contoh ini menggambarkan bagaimana penjana boleh digunakan untuk membuat saluran paip untuk pemprosesan data, menggabungkan beberapa langkah dengan cekap.
Contoh -contoh ini menunjukkan kepelbagaian dan utiliti kata kunci yield
dalam menguruskan memori, mengendalikan dataset yang besar, dan memudahkan tugas pemprosesan data yang kompleks di Python.
Atas ialah kandungan terperinci Apakah tujuan kata kunci hasil dalam python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!