Jadual Kandungan
1. yield mengubah fungsi menjadi penjana
2. Penilaian malas: Nilai dihasilkan atas permintaan
3. Bagaimana perbezaan yield dari return
4. Kes Penggunaan Praktikal
5. Objek Generator adalah Iterator
Rumah pembangunan bahagian belakang Tutorial Python Bagaimana kata kunci hasil berfungsi di python

Bagaimana kata kunci hasil berfungsi di python

Aug 15, 2025 am 08:23 AM
python yield

Kata kunci hasil digunakan untuk menentukan fungsi penjana, supaya ia dapat menjeda pelaksanaan dan mengembalikan nilai satu demi satu, dan kemudian pulih dari jeda; Fungsi Generator mengembalikan objek penjana, mempunyai ciri -ciri penilaian malas, dan dapat menyelamatkan ingatan. Ia sesuai untuk mengendalikan senario seperti fail besar, data streaming, dan urutan tak terhingga. Penjana adalah iterator yang menyokong seterusnya () dan untuk gelung, tetapi tidak boleh digulingkan dan mesti dicipta semula untuk berulang lagi.

Bagaimana kata kunci hasil berfungsi di python

Kata kunci yield dalam Python digunakan untuk menentukan fungsi penjana , yang merupakan jenis fungsi khas yang mengembalikan objek penjana . Tidak seperti fungsi biasa yang mengembalikan nilai dan menamatkan, fungsi penjana boleh menjeda pelaksanaan mereka, mengembalikan nilai, dan kemudian disambung semula dari mana mereka berhenti.

Inilah cara ia berfungsi:

1. yield mengubah fungsi menjadi penjana

Apabila anda menggunakan yield di dalam fungsi, fungsi itu menjadi fungsi penjana . Memanggilnya tidak menjalankan fungsi dengan segera - sebaliknya, ia mengembalikan objek penjana yang boleh diulang.

 def count_up_to (max):
    kiraan = 1
    Sementara dikira <= max:
        kiraan hasil
        kiraan = 1

# Ini belum menjalankan fungsi
kaunter = count_up_to (3)

# Sekarang kita melangkah
untuk nombor di kaunter:
    Cetak (Nombor) # Output: 1, 2, 3

Setiap yield masa ditemui, fungsi menjeda , menyelamatkan keadaannya (seperti pembolehubah tempatan), dan mengembalikan nilai yang dihasilkan. Pada masa next() dipanggil pada penjana, ia disambung semula dari tepat selepas yield .


2. Penilaian malas: Nilai dihasilkan atas permintaan

Penjana menghasilkan nilai malas - satu demi satu, hanya apabila diperlukan. Ini adalah memori yang cekap, terutamanya untuk dataset besar atau urutan tak terhingga.

 def infinite_counter ():
    num = 1
    Walaupun benar:
        hasil bilangan
        num = 1

gen = infinite_counter ()
cetak (seterusnya (gen)) # 1
cetak (seterusnya (gen)) # 2
cetak (seterusnya (gen)) # 3

Ini tidak akan berfungsi dengan fungsi biasa yang mengembalikan senarai - ia akan cuba mencipta nilai tak terhingga dalam ingatan. Tetapi dengan yield , ia menghasilkan satu demi satu.


3. Bagaimana perbezaan yield dari return

  • return menghantar nilai kembali dan menamatkan fungsi secara kekal.
  • yield menghantar nilai kembali tetapi menjeda fungsi, memelihara keadaannya untuk panggilan seterusnya.
 def simple_generator ():
    Hasil "Pertama"
    Hasil "Kedua"
    Hasil "Ketiga"

gen = simple_generator ()
cetak (seterusnya (gen)) # pertama
cetak (seterusnya (gen)) # kedua
cetak (seterusnya (gen)) # ketiga
# cetak (seterusnya (gen)) # menimbulkan hentian

Setiap panggilan next() menelefon semula fungsi sehingga yield seterusnya.


4. Kes Penggunaan Praktikal

  • Memproses fail besar : Baca baris demi baris tanpa memuatkan semuanya ke dalam ingatan.
  • Data streaming : Menjana nilai dari API atau sensor satu demi satu.
  • Urutan Infinite : Seperti Fibonacci, kaunter, dll.
  • Pipelin : Penjana rantai untuk pemprosesan data yang cekap.

Contoh: Membaca fail besar dengan cekap

 def read_large_file (file_path):
    dengan buka (file_path) sebagai f:
        untuk baris dalam f:
            garis hasil.strip ()

Dengan cara ini, hanya satu baris dalam ingatan pada satu masa.


5. Objek Generator adalah Iterator

Generator adalah penyokong , jadi ia menyokong:

  • next() - untuk mendapatkan nilai seterusnya
  • for gelung - mengendalikan lelaran secara automatik
  • Ia menimbulkan StopIteration apabila keletihan

Anda tidak boleh "mundur" penjana - sebaik sahaja anda telah melaluinya, ia selesai. Anda perlu membuat yang baru.


Singkatnya, yield membolehkan fungsi menghasilkan urutan nilai dari masa ke masa, menjeda dan memulihkan pelaksanaan. Ia adalah alat yang berkuasa untuk menulis kod efisien dan bersih memori apabila berurusan dengan aliran atau data besar.

Pada asasnya, yield membuat fungsi ingat di mana ia ditinggalkan - fungsi biasa yang tidak dilakukan.

Atas ialah kandungan terperinci Bagaimana kata kunci hasil berfungsi di python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial PHP
1540
276
Bagaimana untuk mengautomasikan kemasukan data dari Excel ke borang web dengan Python? Bagaimana untuk mengautomasikan kemasukan data dari Excel ke borang web dengan Python? Aug 12, 2025 am 02:39 AM

Kaedah mengisi data Excel ke dalam bentuk web menggunakan Python adalah: pertama menggunakan panda untuk membaca data Excel, dan kemudian gunakan selenium untuk mengawal penyemak imbas untuk mengisi secara automatik dan menyerahkan borang; Langkah -langkah khusus termasuk memasang pandas, openpyxl dan perpustakaan selenium, memuat turun pemacu penyemak imbas yang sepadan, menggunakan pandas untuk membaca nama, e -mel, telefon dan medan lain dalam fail data.xlsx, melancarkan pelayar melalui selenium untuk membuka. Bentuk dan proses semua baris data dalam gelung.

Apakah analisis sentimen dalam perdagangan cryptocurrency? Apakah analisis sentimen dalam perdagangan cryptocurrency? Aug 14, 2025 am 11:15 AM

Jadual Kandungan Apakah analisis sentimen dalam perdagangan cryptocurrency? Mengapa analisis sentimen penting dalam sumber pelaburan cryptocurrency sumber data emosi a. Platform Media Sosial b. Media berita c. Alat untuk analisis sentimen dan teknologi alat yang biasa digunakan dalam analisis sentimen: Teknik yang diterima pakai: Mengintegrasikan analisis sentimen ke dalam strategi perdagangan bagaimana peniaga menggunakannya: Strategi Contoh: Dengan mengandaikan senario senario perdagangan BTC Penetapan: Isyarat Emosi: Tafsiran Pedagang: Keputusan: Batasan dan Risiko Analisis Sentimen Menggunakan Emosi Kajian 2025 baru -baru ini oleh Hamid

Bagaimana untuk mengendalikan dataset besar di Python yang tidak sesuai dengan ingatan? Bagaimana untuk mengendalikan dataset besar di Python yang tidak sesuai dengan ingatan? Aug 14, 2025 pm 01:00 PM

Apabila memproses set data besar yang melebihi memori dalam python, mereka tidak boleh dimuatkan ke dalam RAM pada satu masa. Sebaliknya, strategi seperti pemprosesan pemprosesan, penyimpanan cakera atau streaming harus diterima pakai; Fail CSV boleh dibaca dalam ketulan melalui parameter Pandas 'dan blok diproses oleh blok. Dask boleh digunakan untuk merealisasikan penjadualan dan penjadualan tugas yang serupa dengan sintaks pandas untuk menyokong operasi data memori yang besar. Tulis fungsi penjana untuk membaca fail teks mengikut baris untuk mengurangkan penggunaan memori. Gunakan format penyimpanan kolumnar parket yang digabungkan dengan pyarrow untuk membaca lajur atau kumpulan baris tertentu dengan cekap. Gunakan Memmap Numpy untuk memori peta tatasusunan berangka besar untuk mengakses serpihan data pada permintaan, atau menyimpan data dalam data ringan seperti SQLite atau DuckDB.

Cara debug kod python anda Cara debug kod python anda Aug 13, 2025 am 12:18 AM

UsePrint () StatementStoCheckVariableValuuesandExecutionFlow, AddingLabelSandTypesforClarity, andRemoveThembeforeCommitting; 2.Usethepythondebugger (PDB) withbreakpoint () TopAuseExecution, InspectVariables, danStepThoughleShoughleShoughleShoTHoughleShoughleShoughleShoTHoughleVariable, danStepThoughleShoTHoughleShoTheShoThoTheShoThoTheShoThereShoTher ()

Bagaimana cara debug kod python dalam teks luhur? Bagaimana cara debug kod python dalam teks luhur? Aug 14, 2025 pm 04:51 PM

PenggunaanSublimetext'sbuildsystemtorunpythonscriptsandcatcherrorsbypressingctrl baftersettingthecorrectbuildsystemorcreatingacustomone.2.insertstrategicprint () statementShocheckVariahvariues, types, andexecutionflow, menggunakanLabelsandre.

Bagaimana cara menjalankan kod python dalam teks luhur? Bagaimana cara menjalankan kod python dalam teks luhur? Aug 16, 2025 am 04:58 AM

Pastikan Python dipasang dan ditambah ke laluan sistem, jalankan Python-versi atau Python3-pengesahan versi melalui terminal; 2. Simpan fail python sebagai lanjutan .py, seperti hello.py; 3. Buat sistem binaan tersuai dalam sublimetext, pengguna Windows menggunakan {"cmd": ["python", "-u", "$ file"]}, pengguna macOS/linux menggunakan {"cmd": ["python3

Cara debug skrip python di vscode Cara debug skrip python di vscode Aug 16, 2025 am 02:53 AM

Untuk menyahpepijat skrip python, anda perlu terlebih dahulu memasang lanjutan python dan mengkonfigurasi penterjemah, kemudian buat fail launch.json untuk menetapkan konfigurasi debugging, kemudian tetapkan titik putus dalam kod dan tekan F5 untuk memulakan debugging. Skrip akan dijeda pada titik putus, membolehkan pembolehubah pemeriksaan dan pelaksanaan langkah demi langkah. Akhirnya, dengan memeriksa masalah dengan melihat output konsol, menambah log atau menyesuaikan parameter, dan lain -lain, untuk memastikan bahawa proses debugging adalah mudah dan cekap selepas persekitaran adalah betul.

Cara meratakan senarai bersarang atau senarai senarai di Python Cara meratakan senarai bersarang atau senarai senarai di Python Aug 12, 2025 am 09:49 AM

FlatteninganestedlistinpythonconvertsalistwithsublistsIntoasingleFlatlist, andthebestmethoddependsonThenestingDepthanddatasize.forone levelnesting, uselistcomprehension [

See all articles