Perbedaan Antara Hasil Python dan Pengembalian Python

Pernyataan hasil digunakan untuk mendefinisikan generator dengan Python. Jadi sebelum kita masuk ke dalam apa yang sebenarnya dihasilkan, kita harus memahami konsep generator terlebih dahulu. Generator memiliki peran penting dalam Python dan jika Anda terlibat dalam pemrograman Python, maka kemungkinan Anda telah bekerja dengan generator Python. Generator digunakan untuk membuat iterator dengan 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 dalam Python 2.2 dan dibuat standar dalam Python 2.3. Meskipun, mereka cukup kuat, fungsi generator ditingkatkan secara signifikan dengan Python 2.5.

Ketika generator ditambahkan kembali di Python 2.2, itu memperkenalkan kata kunci baru "hasil" untuk kompatibilitas mundur, yang kami butuhkan untuk mengimpor generator dari modul _future_ untuk menggunakannya. Ini diubah dalam versi Python 2.3 ketika generator menjadi standar dan itu tidak lagi diperlukan.

Pernyataan hasil menunda penangguhan fungsi dan mengirim nilai kembali ke pemanggil, sementara menyimpan keadaan dan kemudian melanjutkan berarti seluruh generator itu sendiri masih dapat dilanjutkan setelah nilai kembali diperoleh. Pernyataan pengembalian mengakhiri eksekusi fungsi dan mengirimkan nilai kembali ke pemanggil. Tanpanya, fungsi Anda tidak menghasilkan apa-apa. Mari kita perhatikan kapan harus menggunakan hasil dan kapan harus menggunakan kembali dengan Python untuk lebih memahami perbedaan antara keduanya.

Apa itu Python Yield?

Pernyataan hasil digunakan dalam generator Python untuk menggantikan pengembalian fungsi untuk mengirim nilai kembali ke pemanggilnya tanpa merusak variabel lokal. Untuk lebih memahami apa peran pernyataan hasil bermain dalam pemrograman Python, Anda harus memahami apa itu generator.

Fungsi generator diproduksi dengan definisi seperti fungsi biasa tetapi berisi pernyataan "hasil". Ini dimulai dengan kata kunci "hasil" yang menentukan objek generator untuk dikembalikan ke pemanggil. Generator adalah fungsi khusus dalam Python yang mengembalikan objek generator ke pemanggil daripada nilai data. Kata kunci hasil memiliki kemampuan unik untuk menghentikan eksekusi fungsi, menyimpan kondisi, dan melanjutkan kembali.

Apa itu Pengembalian Python?

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

Biasanya, pernyataan kembali muncul di akhir blok fungsi untuk mengembalikan hasil akhir dari mengeksekusi semua pernyataan yang terkandung dalam fungsi itu. Namun, itu mungkin juga muncul sebelumnya di blok fungsi untuk menghentikan eksekusi semua pernyataan berikutnya di blok itu. Ini segera melanjutkan eksekusi program di pemanggil. Ketika tidak ada nilai yang ditentukan, jenis objek pengembalian setara dengan Python adalah "Tidak Ada".

Perbedaan antara Python Yield dan Return

  1. Dasar-dasar yang terkait dengan Python Yield and Return

    • Pernyataan hasil digunakan dalam generator Python untuk menggantikan pengembalian fungsi untuk mengirim nilai kembali ke pemanggilnya tanpa merusak variabel lokal. Generator adalah fungsi khusus dalam Python yang mengembalikan objek generator ke pemanggil daripada nilai data.
    • Pernyataan pengembalian, tidak seperti pernyataan hasil, keluar dari suatu fungsi, mengembalikan nilai kepada peneleponnya. Biasanya, pernyataan kembali 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 di Python Yield dan Return

    • 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 yang dapat dipanggil untuk setiap pemanggilan fungsi yang diberikan.
    • Tidak seperti fungsi yang hanya mengembalikan satu kali, generator dapat menghentikan eksekusi dan menghasilkan hasil antara. Setiap generator didefinisikan sebagai fungsi, tetapi alih-alih kata kunci kembali, kata kunci hasil digunakan di dalam blok fungsi untuk menunjukkan bahwa nilai kembali hanya sementara dan seluruh generator dapat dilanjutkan bahkan setelah nilai kembali diperoleh.
  1. Eksekusi Hasil dan Pengembalian Python

    • Pernyataan kembali mengakhiri eksekusi suatu fungsi dan mengirimkan kembali suatu nilai kepada pemanggilnya. Fungsi mengembalikan nilai kembali ke penelepon mereka dan mereka yang lebih bersifat 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 kembali fungsi untuk menunda pelaksanaannya dan mengirimkan nilai kembali ke pemanggilnya tanpa merusak variabel lokal. Namun, tidak seperti fungsi pengembalian, hasil melanjutkan eksekusi fungsi dari tempat itu ditinggalkan.

Python Yield vs Return: Comparison Chart

Ringkasan Hasil dan Pengembalian Python

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