cari
RumahPeranti teknologiindustri ITPetua cepat: Memahami kata kunci hasil dalam python

3

Quick Tip: Understanding the Yield Keyword in Python Terima kasih kepada Shaumik Daityari untuk membantu meninjau artikel ini.

Petua cepat: Memahami kata kunci hasil dalam python Apabila kita memanggil fungsi di Python, fungsi ini biasanya akan mula berfungsi sehingga ia menemui pulangan, pengecualian, atau mencapai akhir - selepas itu ia mengembalikan kawalan kembali kepada pemanggil. Setiap kali anda memanggil fungsi itu lagi, proses akan bermula dari

Scratch

! Katakanlah bahawa anda meminta seseorang untuk mengesan kereta merah di jalan raya. Orang itu akan terus mendapat soalan yang bertanya kepada mereka jika mereka melihat kereta merah atau tidak, dan orang itu akan menjawab sama ada 'ya' atau 'tidak'. Jika orang itu menjawab 'ya', bilangan kali kereta merah itu akan meningkat akan meningkat.

mari kita lihat bagaimana kita boleh melakukan ini di Python:

Jika anda menjalankan program ini, apa yang anda perhatikan? Adakah anda perasan bahawa bilangan kali untuk jawapan 'ya' sentiasa dihadkan pada 1, dan apabila anda menjawab 'tidak' bilangan kali mendapat 0 tanpa mengira 'ya' sebelum ini?

di sinilah kata kunci hasil Python. Hasil adalah cara yang mana kita

sementara

kawalan tangan kepada pemanggil, dan mengharapkan untuk meneruskan dari titik di mana kawalan telah diserahkan.
import time

def red_cars(answer):
    n = 0
    while True:
        if answer == 'yes':
            n = n + 1
            return n
        else:
            return n

stop = time.time() + 5 * 60
while time.time() 

<p> Sebelum memberikan penyelesaian kepada contoh di atas, izinkan saya menunjukkan contoh yang sangat mudah untuk menggambarkan lebih baik bagaimana hasil berfungsi. </p>

<p> Katakan kita mempunyai skrip python mudah berikut: <em>


</em>

</p> Jika anda menjalankan skrip, anda akan mendapat output berikut: <p>

</p>

<p> Sekarang, jika kita menggunakan hasil sebaliknya, seperti berikut: </p>

<pre class="brush:php;toolbar:false">def step_by_step():
    return 'step 1'
    return 'step 2'
    return 'step 3'
    
step = step_by_step()
for i in range (3):
    print step

output akan menjadi seperti berikut:

step 1
step 1
step 1

seperti yang anda lihat, kami dapat mencipta siri

def step_by_step():
    yield 'step 1'
    yield 'step 2'
    yield 'step 3'
    
step = step_by_step()
for i in range (3):
    print step.next()
nilai -nilai, seperti bagi setiap panggilan fungsi berterusan dari titik di mana ia menghasilkan nilai. Fungsi jenis ini dipanggil penjana. Fungsi sedemikian mewujudkan lelaran penjana, seperti setiap panggilan ke kaedah seterusnya () kita berpindah ke pernyataan hasil seterusnya.

Jika kita kembali ke contoh utama kita (kereta merah), ia boleh ditulis seperti berikut untuk melaksanakan tugas yang diperlukan:
step 1
step 2
step 3

Oleh itu, seperti yang dapat kita lihat, hasilnya dianggap penting apabila kita berminat untuk meneruskan pelaksanaan pada titik terakhir di mana fungsi (penjana) keluar, dan di mana kita juga berminat untuk mengekalkan nilai pembolehubah tempatan antara panggilan yang berbeza - Tidak seperti fungsi biasa, di mana nilai -nilai tersebut dimusnahkan apabila keluar dari fungsi.

Terdapat, bagaimanapun, penggunaan hasil lain. Sebagai contoh, anda boleh menggunakan hasil jika anda mempunyai fungsi yang mengembalikan urutan (contohnya, baris dalam lembaran Excel) dan anda perlu melangkah ke atas urutan tanpa setiap nilai dalam memori sekaligus. Iaitu, untuk menyelamatkan ingatan.

Hasil juga boleh digunakan semasa bekerja dengan ayat, di mana kita mempunyai senarai besar yang sukar untuk dilalui antara fungsi. Sebagai contoh, fungsi terbina Python untuk permutasi dan kombinasi dalam modul penggunaan modul ITERTools.

Soalan Lazim (Soalan Lazim) Mengenai Kata Kunci Hasil dalam Python

Apakah perbezaan antara kata kunci hasil dan pulangan dalam Python? Kata kunci kembali digunakan apabila anda mahu fungsi menghasilkan nilai dan kemudian ditamatkan. Sebaik sahaja fungsi mengembalikan nilai, ia dilakukan pelaksanaan dan kawalan diluluskan kembali kepada pemanggil. Sebaliknya, kata kunci hasil digunakan dalam fungsi seperti pernyataan pulangan, tetapi ia menghasilkan nilai dan menangguhkan pelaksanaan fungsi. Fungsi ini dapat disambung semula kemudian dari mana ia berhenti, membolehkannya menghasilkan satu siri nilai dari masa ke masa, bukannya mengira mereka sekaligus dan menghantarnya kembali seperti senarai.

Bagaimana kata kunci hasil Bekerja di Python?

Kata kunci hasil dalam python digunakan dalam fungsi dengan gelung untuk membuat iterator. Apabila fungsi dipanggil, ia mengembalikan iterator, tetapi tidak memulakan pelaksanaan dengan segera. Apabila kaedah Iterator seterusnya () dipanggil, fungsi mula dilaksanakan. Sebaik sahaja ia menemui kata kunci hasil, ia mengembalikan hujah yang diluluskan untuk menghasilkan dan menjeda pelaksanaan. Fungsi ini dapat disambung Dalam Python? 🎜>

Untuk nilai dalam simple_generator ():

cetak (nilai)

Dalam contoh ini, simple_generator adalah fungsi penjana kerana ia menggunakan kata kunci hasil. Apabila kita melelehkan objek penjana yang dikembalikan oleh Simple_Generator (), ia menghasilkan 1, kemudian 2, kemudian 3, menjeda pelaksanaannya antara setiap hasil. >

Kata kunci hasil dalam Python membolehkan anda menulis fungsi yang dapat menghasilkan urutan hasil dari masa ke masa, dan bukannya mengira mereka sekaligus dan mengembalikannya dalam senarai misalnya. Ini boleh menjadi sangat berguna apabila set hasilnya besar dan anda ingin menyimpan ingatan. Ia juga membolehkan anda membuat objek anda sendiri dan menggunakannya dengan Python untuk gelung, pemantauan, dan fungsi lain yang mengharapkan yang boleh dimakan.

Bolehkah fungsi mengandungi kedua -dua pernyataan hasil dan pulangan dalam Python? Walau bagaimanapun, penting untuk diperhatikan bahawa sekali pernyataan pulangan dilaksanakan, pelaksanaan fungsi ditamatkan, dan kawalan diteruskan kembali kepada pemanggil. Oleh itu, jika pernyataan pulangan dilaksanakan sebelum pernyataan hasil, pernyataan hasil tidak akan dapat dicapai. Sebaliknya, jika pernyataan hasil dilaksanakan terlebih dahulu, fungsi akan dijeda dan kawalan akan diteruskan kembali kepada pemanggil, tetapi fungsi itu dapat disambung semula kemudian, di mana pernyataan kembali dapat dilaksanakan. Bolehkah saya menggunakan kata kunci hasil dalam fungsi rekursif dalam python?

Ya, anda boleh menggunakan kata kunci hasil dalam fungsi rekursif dalam python. Walau bagaimanapun, anda perlu ingat untuk berulang atas panggilan rekursif dan menghasilkan setiap nilai, jika tidak, anda akan mendapat objek penjana dan bukannya nilai yang anda harapkan. Dalam python?

Perbezaan utama antara fungsi penjana dan fungsi normal dalam python ialah fungsi penjana menggunakan kata kunci hasil dan fungsi normal menggunakan kata kunci pulangan. Apabila fungsi penjana dipanggil, ia mengembalikan objek penjana tanpa memulakan pelaksanaan fungsi. Apabila kaedah seterusnya () dipanggil untuk kali pertama, fungsi mula melaksanakan sehingga mencapai kata kunci hasil, yang menghasilkan nilai. Fungsi itu kemudian menjeda pelaksanaan dan kawalan diluluskan kembali kepada pemanggil. Sebaliknya, apabila fungsi normal dipanggil, ia memulakan pelaksanaan dengan segera dan berjalan hingga selesai, mengembalikan nilai. Ya, anda boleh menggunakan beberapa pernyataan hasil dalam satu fungsi dalam Python. Apabila fungsi dipanggil, ia akan menghasilkan nilai setiap kali ia menemui pernyataan hasil, berhenti pelaksanaannya dan lulus kawalan kembali kepada pemanggil. Pada masa yang akan datang kaedah seterusnya () kaedah dipanggil, ia akan meneruskan pelaksanaan dari mana ia berhenti dan berlari sehingga ia menemui pernyataan hasil seterusnya. Python?

Apabila fungsi penjana di Python tidak mempunyai nilai lagi untuk menghasilkan, ia menimbulkan pengecualian stopiteration. Anda boleh menangkap pengecualian ini dengan menggunakan blok percubaan/kecuali. Berikut adalah contoh:

def simple_generator ():

hasil 1

hasil 2

hasil 3

gen = simple_generator ()

cuba:

cetak (seterusnya (gen))

kecuali stopiteration:
break

Dalam contoh ini, kita menangkap pengecualian stopiteration dan keluar dari gelung apabila tidak ada lebih banyak nilai untuk menghasilkan.

Bolehkah saya menggunakan kata kunci hasil dalam fungsi lambda dalam python?

Tidak, anda tidak boleh menggunakan kata kunci hasil dalam fungsi lambda dalam python. Ini kerana fungsi Lambda terhad kepada satu ungkapan, dan kata kunci hasil memperkenalkan konteks pernyataan. Jika anda perlu membuat fungsi penjana, anda perlu menggunakan pernyataan DEF untuk menentukan fungsi biasa.

Atas ialah kandungan terperinci Petua cepat: Memahami kata kunci hasil dalam python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
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
Surat berita pemaju 21 teratas untuk melanggan pada tahun 2025Surat berita pemaju 21 teratas untuk melanggan pada tahun 2025Apr 24, 2025 am 08:28 AM

Tinggal maklumat mengenai trend teknologi terkini dengan surat berita pemaju teratas ini! Senarai ini menawarkan sesuatu untuk semua orang, dari peminat AI ke pemaju backend dan frontend yang berpengalaman. Pilih kegemaran anda dan menjimatkan masa mencari rel

Paip pemprosesan imej tanpa pelayan dengan AWS ECS dan LambdaPaip pemprosesan imej tanpa pelayan dengan AWS ECS dan LambdaApr 18, 2025 am 08:28 AM

Tutorial ini membimbing anda melalui membina saluran paip pemprosesan imej tanpa pelayan menggunakan perkhidmatan AWS. Kami akan membuat frontend next.js yang digunakan pada kluster ECS Fargate, berinteraksi dengan Gateway API, Fungsi Lambda, Bucket S3, dan DynamoDB. Th

CNCF Arm64 Pilot: Impak dan WawasanCNCF Arm64 Pilot: Impak dan WawasanApr 15, 2025 am 08:27 AM

Program perintis ini, kerjasama antara CNCF (Yayasan Pengkomputeran Native Cloud), pengkomputeran ampere, equinix metal, dan digerakkan, menyelaraskan ARM64 CI/CD untuk projek GitHub CNCF. Inisiatif ini menangani kebimbangan keselamatan dan prestasi lim

See all articles

Alat AI Hot

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.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

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

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Persekitaran pembangunan bersepadu PHP yang berkuasa

MinGW - GNU Minimalis untuk Windows

MinGW - GNU Minimalis untuk Windows

Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

EditPlus versi Cina retak

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod