Perbedaan antara Python Yield dan Python Return

Perbedaan antara Python Yield dan Python Return

Pernyataan hasil digunakan untuk mendefinisikan generator di Python. Jadi sebelum kita masuk ke apa yang benar -benar dilakukan hasil, kita harus memahami konsep generator terlebih dahulu. Generator memiliki peran penting dalam Python dan jika Anda jauh ke dalam pemrograman Python, maka kemungkinan Anda sudah bekerja dengan generator Python. Generator digunakan untuk membuat iterator di Python, tetapi dengan pendekatan yang berbeda.

Generator Python adalah fungsi yang menghasilkan urutan hasil dan dapat dijeda dan dilanjutkan secara dinamis. Generator pertama kali ditambahkan sebagai fitur opsional di Python 2.2 dan membuat standar di Python 2.3. Meskipun, mereka cukup kuat, fungsi generator secara signifikan ditingkatkan di Python 2.5.

Saat generator ditambahkan kembali dalam Python 2.2, itu memperkenalkan kata kunci baru "hasil" untuk kompatibilitas ke belakang, yang perlu kami impor generator dari modul _future_. Ini diubah di Python Version 2.3 Ketika generator menjadi standar dan itu tidak lagi diperlukan.

Pernyataan Yield menangguhkan eksekusi suatu fungsi dan mengirimkan nilai kembali ke penelepon, sementara keadaan menghemat dan kemudian melanjutkan yang berarti seluruh generator itu sendiri masih dapat dilanjutkan setelah nilai pengembalian diperoleh. Pernyataan pengembalian mengakhiri eksekusi fungsi dan mengirimkan nilai kembali ke penelepon. Tanpa itu, fungsi Anda tidak menghasilkan apa -apa. Mari kita perhatikan dengan baik kapan harus menggunakan hasil dan kapan menggunakan kembali dalam python untuk lebih memahami perbedaan antara keduanya.

Apa yang dihasilkan Python?

Pernyataan hasil digunakan dalam generator Python untuk menggantikan pengembalian fungsi untuk mengirim nilai kembali ke peneleponnya tanpa menghancurkan variabel lokal. Untuk lebih memahami peran apa yang dimainkan oleh pernyataan hasil dalam pemrograman Python, Anda harus memahami apa itu generator.

Fungsi generator diproduksi menurut definisi seperti fungsi reguler tetapi berisi pernyataan "hasil". Ini dimulai dengan kata kunci "hasil" yang menentukan objek generator yang akan dikembalikan ke penelepon. Generator adalah fungsi khusus dalam python yang mengembalikan objek generator ke penelepon daripada nilai data. Kata kunci hasil memiliki kemampuan unik untuk menghentikan pelaksanaan fungsi, status tabungan, dan kemudian melanjutkan.

Apa itu Python Return?

Pernyataan pengembalian, tidak seperti pernyataan hasil, keluar dari suatu fungsi, memberikan nilai kepada peneleponnya. Fungsi mengembalikan nilai kembali ke penelepon mereka dan mereka yang lebih prosedural tidak secara eksplisit mengembalikan apa pun. Sementara suatu fungsi dapat memiliki beberapa pernyataan pengembalian, hanya satu dari mereka yang dapat dipanggil untuk setiap doa fungsi yang diberikan.

Biasanya, pernyataan pengembalian muncul di akhir blok fungsi untuk mengembalikan hasil akhir dari mengeksekusi semua pernyataan yang terkandung dalam fungsi itu. Namun, itu juga dapat muncul lebih awal di blok fungsi untuk menghentikan eksekusi semua pernyataan selanjutnya di blok itu. Ini segera melanjutkan pelaksanaan program di penelepon. Ketika tidak ada nilai yang ditentukan, tipe objek pengembalian yang setara dalam python adalah "tidak ada".

Perbedaan antara python menghasilkan dan kembali

  1. Dasar -dasar yang terkait dengan hasil python dan kembali

    • Pernyataan hasil digunakan dalam generator Python untuk menggantikan pengembalian fungsi untuk mengirim nilai kembali ke peneleponnya tanpa menghancurkan variabel lokal. Generator adalah fungsi khusus dalam python yang mengembalikan objek generator ke penelepon daripada nilai data.
    • Pernyataan pengembalian, tidak seperti pernyataan hasil, keluar dari suatu fungsi, memberikan nilai kepada peneleponnya. Biasanya, pernyataan pengembalian muncul di akhir blok fungsi untuk mengembalikan hasil akhir dari mengeksekusi semua pernyataan yang terkandung dalam fungsi itu. Semua fungsi mengembalikan nilai dan jika tidak ada nilai yang ditentukan, itu akan mengembalikan "tidak ada".
  1. Generator vs. Fungsi dalam hasil dan kembali Python

    • Pernyataan hasil secara eksplisit digunakan dengan generator python. Secara sintaksis, generator adalah fungsi dengan pernyataan hasil. Sementara suatu fungsi dapat memiliki beberapa pernyataan pengembalian, hanya satu dari mereka yang dapat dipanggil untuk setiap doa fungsi yang diberikan.
    • Tidak seperti fungsi yang hanya kembali sekali, generator dapat menghentikan eksekusi dan menghasilkan hasil perantara. Setiap generator didefinisikan sebagai fungsi, tetapi alih -alih kata kunci pengembalian, kata kunci hasil digunakan di dalam blok fungsi untuk menunjukkan bahwa nilai pengembalian hanya sementara dan seluruh generator dapat dilanjutkan bahkan setelah nilai pengembalian diperoleh.
  1. Eksekusi hasil python dan kembali

    • Pernyataan pengembalian mengakhiri pelaksanaan fungsi dan mengirimkan kembali nilai ke peneleponnya. Fungsi mengembalikan nilai kembali ke penelepon mereka dan mereka yang lebih prosedural tidak secara eksplisit mengembalikan apa pun. Apa yang pada dasarnya dilakukan adalah keluar dari suatu fungsi dan menghancurkan semua nilai lokal di dalamnya.
    • Pernyataan hasil, di sisi lain, menggantikan nilai pengembalian fungsi untuk menangguhkan eksekusi dan mengirimkan nilai kembali ke peneleponnya tanpa menghancurkan variabel lokal. Namun, tidak seperti fungsi pengembalian, hasil melanjutkan pelaksanaan fungsi dari tempat ditinggalkan.

Hasil Python vs. Pengembalian: Bagan Perbandingan

Ringkasan hasil python dan kembali

Secara sintaksis, hasil adalah kata kunci yang dapat digunakan seperti kata kunci pengembalian, kecuali pernyataan pengembalian mengakhiri eksekusi fungsi Anda dan mengirimkan kembali nilai ke peneleponnya. Fungsionalitas pernyataan pengembalian adalah mengambil input dan mengembalikan sesuatu ke penelepon. Tidak seperti pengembalian, pernyataan hasil secara eksplisit digunakan untuk mendefinisikan generator, mengganti nilai pengembalian fungsi untuk menangguhkan eksekusi menjaga variabel lokal tetap utuh, sedangkan pernyataan pengembalian menghancurkan semua variabel lokal di dalam.