Python

Tutorial Penutupan Python

Tutorial Penutupan Python
Penutupan adalah metode atau fungsi dalam bersarang yang mengenali dan memiliki hak istimewa untuk menggunakan variabel bahkan setelah fungsi luar selesai dieksekusi dalam lingkup lokal di mana ia dibuat. Variabel harus berasal dari fungsi atau ruang lingkup luar dan tidak pasti dibatasi dalam ruang lokal yang akan digunakan. Ada tiga fitur penutupan Python, ini adalah sebagai berikut:

Fungsi Bersarang

Anda harus terlebih dahulu memahami apa itu metode bersarang. Fungsi bersarang dapat didefinisikan sebagai metode yang ditentukan dalam metode lain. Fungsi rekursif dapat mencapai variabel lingkup luar. Untuk mengubah variabel non-lokal, kami secara khusus mendefinisikannya sebagai non-lokal melalui kata kunci nonlokal karena sifatnya hanya-baca. Jadi, pertama, lihat fungsi bersarang yang dilakukan di Spyder Python 3.

Kami telah mendefinisikan dua fungsi: luar dan dalam. Di fungsi luar, kami telah mendeklarasikan variabel dengan beberapa nilai teks di dalamnya.

def outer_func()
msg = 'Hai! Saya Aqsha Yasin'

Variabel ini telah dicetak dalam fungsi dalam menggunakan pernyataan cetak print. Fungsi dalam kemudian dikembalikan, yang merupakan fungsi bersarang, dan setelah itu, fungsi luar dipanggil.

def inner_func()
cetak (pesan)
kembalikan inner_func()
fungsi_dalam()

Jika Anda tidak menggunakan kata kunci return untuk mengembalikan fungsi bagian dalam, itu akan tetap mengembalikan hasil yang sama.

Ketika Anda menjalankan kode sederhana ini, itu akan mengembalikan Anda teks, yang didefinisikan sebagai nilai dalam variabel 'pesan'.

Keluaran: Hy! Saya Aqsha Yasin

Sekarang tentukan jenis fungsi bersarang yang sama tanpa kata kunci kembali dan variabel yang lewat 'pesan' dalam parameter, dan Anda akan mendapatkan output yang sama.

Keluaran: Halo

Fungsi Penutupan Sederhana

Gunakan kode yang sama, dengan sedikit perubahan pada dua baris terakhir. Dengan tali 'Halo', itu tampilkan_pesan() metode dipanggil, dan metode yang dikembalikan diikat ke kata 'lain'. Saat menelepon lain(), teks 'Halo' masih diingat, sedangkan tampilkan_pesan() metode sudah selesai dijalankan. Pastikan untuk menambahkan variabel 'pesan' dalam fungsi luar.

Ketika Anda menjalankan kode ini, itu akan menunjukkan bahwa fungsi dalam, yaitu a menunjukkan(), telah ditugaskan ke variabel 'lain'.

Keluaran: .tampilkan di 0x0000020CCED4D820>

Anda cukup mencetak nama dari fungsi yang ditugaskan ke variabel 'lain' sebagai:

cetak (lain).__nama__)

Ini akan menampilkan nama fungsi.

Keluaran: tampilkan

Sekarang, jika Anda ingin menjalankan variabel ini sebagai fungsi, seperti metode lainnya, Anda dapat melakukannya dengan menambahkan tanda kurung dan memanggilnya seperti ini:

lain = show_msg("Halo")
lain()
lain()

Anda dapat memanggil ini sebanyak yang Anda inginkan.

Ketika Anda menjalankan kode ini, itu akan menampilkan sesuatu seperti ini:

Keluaran:

Halo

Halo

Halo

Sekarang Anda dapat melihat bahwa bahkan setelah selesainya eksekusi fungsi luar, fungsi dalam masih mengingat variabel dan hal-hal lain yang dibuat atau didefinisikan di ruang lokal.

Fungsi Penutupan menggunakan Parameter

Sekarang, kami telah menambahkan parameter saat meneruskan variabel di fungsi luar sebagai:

def show_msg(pesan)

Nilai yang diteruskan ke parameter fungsi luar akan ditetapkan ke variabel yang didefinisikan dalam fungsi luar ini sebagai:

Pesan = pesan

Lewati beberapa nilai string dalam variabel yang baru dibuat di baris terakhir, seperti:

func1 = show_msg('Hai')
func2 = show_msg('Halo')

Sekarang Anda harus memanggil fungsi-fungsi ini seperti ini:

fungsi1()
fungsi2()

Anda akan mendapatkan output berikut yang ditunjukkan pada gambar editor spyder:

Di dalam Python, proses ini, di mana data apa pun (Hai atau Halo untuk skenario ini) dilampirkan ke skrip, diberi nama Penutupan.

Perkalian sederhana menggunakan Python Closure

Kami telah mendefinisikan dua fungsi. Salah satunya adalah bagian luar, yang memiliki pengali yang ditentukan, dan bagian dalam di mana nilai akan diteruskan saat memanggil fungsi. Di fungsi luar, kami telah mendeklarasikan variabel dengan nilai pengali yang ditentukan lewat di dalamnya. Nilai pengganda ini 'n' telah dikalikan dengan beberapa nilai 'x' yang diteruskan dalam pernyataan cetak ke fungsi dalam. Fungsi dalam kemudian dikembalikan, yang merupakan fungsi bersarang, dan setelah itu, variabel dipanggil satu demi satu dalam pernyataan cetak.

def out_multiply(n):
def in_multiply(x):
kembali x * n
kembali in_multiply

Sekarang variabel baru telah menetapkan beberapa nilai untuk dilewatkan dalam parameter fungsi luar. Nilai ini akan disimpan dalam variabel 'n', yang merupakan pengali yang didefinisikan dalam fungsi luar:

kali3 = out_multiply(3)
kali5 = out_multiply(5)

Variabel-variabel ini akan diberi lebih banyak nilai, yang akan disimpan ke dalam 'x' variabel yang didefinisikan dalam fungsi dalam yang perlu dikalikan dengan pengali 'n'. Saat kita mencetak variabel bernama 'kali', sebuah fungsi dengan beberapa nilai integer 'x' ditugaskan dalam tanda kurung akan membuatnya mengalikan dengan nilai fungsi luar 'n'.

Yang pertama akan keluaran 27 saat melakukan pernyataan cetak karena variabel 'n' memiliki 3 sebagai pengganda, dan kami telah memberikan 9 sebagai bilangan bulat lain untuk dikalikan.

cetak(kali3(9))

Yang kedua akan keluaran 15 saat menjalankan pernyataan cetak karena variabel 'n' memiliki 3 sebagai pengganda, dan kami telah memberikan 5 sebagai bilangan bulat lain untuk dikalikan.

cetak(kali5(3))

Yang terakhir akan keluaran 30 saat menjalankan pernyataan cetak karena memiliki variabel waktu yang dipanggil secara rekursif untuk berfungsi. Pertama kali, waktu telah 'n' memiliki 3 sebagai pengganda, yang akan dikalikan dengan bilangan bulat 2. Pada perkalian, itu akan menghasilkan 6. Sekarang, 6 ini akan digunakan sebagai nilai, lalu diteruskan sebagai argumen ke fungsi variabel waktu, di mana 'n' pengali variabel adalah 5. Jadi ketika 5 dikalikan dengan 6 itu akan mengeluarkan 30.

cetak(kali5(kali3(2)))

Anda dapat melihat output di konsol editor Spyder.

Kesimpulan

Penutupan dapat melarang nilai global digunakan dan memiliki bentuk penyembunyian data. Itu bisa memberikan pendekatan berorientasi objek atau entitas untuk masalah ini juga. Mudah-mudahan, setelah mengikuti panduan ini, Anda akan dapat memperoleh dasar-dasar penutupan Python.

Cara Mengganti Tombol Kiri & Kanan Mouse di PC Windows 10
Sudah menjadi hal biasa bahwa semua perangkat mouse komputer dirancang secara ergonomis untuk pengguna yang tidak kidal. Tetapi ada perangkat mouse ya...
Tiru klik Mouse dengan mengarahkan mouse menggunakan Clickless Mouse di Windows 10
Menggunakan mouse atau keyboard dalam posisi yang salah dari penggunaan yang berlebihan dapat menyebabkan banyak masalah kesehatan, termasuk keteganga...
Tambahkan gerakan Mouse ke Windows 10 menggunakan alat gratis ini
Dalam beberapa tahun terakhir, komputer dan sistem operasi telah berkembang pesat. Ada saat ketika pengguna harus menggunakan perintah untuk menavigas...