Bagaimana kata kunci hasil berfungsi di python
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.
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!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

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

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

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.

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

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.

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

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

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

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.

FlatteninganestedlistinpythonconvertsalistwithsublistsIntoasingleFlatlist, andthebestmethoddependsonThenestingDepthanddatasize.forone levelnesting, uselistcomprehension [
