Python

Tutorial Penutupan Python

Tutorial Penutupan Python
Penutupan adalah kaedah atau fungsi dalaman bersarang yang mengenali dan mempunyai keistimewaan untuk menggunakan pemboleh ubah walaupun fungsi luar selesai dijalankan dalam ruang lingkup tempatan di mana ia dibuat. Pemboleh ubah mestilah dari fungsi atau ruang lingkup luar dan tidak pasti terikat di ruang tempatan yang akan digunakan. Terdapat tiga ciri penutupan Python, seperti berikut:

Fungsi Bersarang

Mula-mula anda harus memahami apa itu kaedah bersarang. Fungsi bersarang dapat didefinisikan sebagai kaedah yang ditentukan dalam kaedah lain. Fungsi rekursif boleh mencapai pemboleh ubah skop luar. Untuk mengubah pemboleh ubah bukan tempatan, kami secara spesifik mendefinisikannya sebagai bukan tempatan melalui kata kunci bukan tempatan kerana secara semula jadi hanya boleh dibaca. Jadi, pertama, lihat fungsi bersarang yang dilakukan di Spyder Python 3.

Kami telah menentukan dua fungsi: bahagian luar dan bahagian dalam. Dalam fungsi luar, kami telah menyatakan pemboleh ubah dengan beberapa nilai teks di dalamnya.

def luaran_func ()
msg = 'Hy! Saya Aqsa Yasin '

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

def dalaman_func ()
cetak (msg)
kembali inner_func ()
inner_func ()

Sekiranya anda tidak menggunakan kata kunci pengembalian untuk mengembalikan fungsi dalaman, kata kunci itu tetap akan menghasilkan hasil yang sama.

Apabila anda menjalankan kod mudah ini, ia akan mengembalikan teks kepada anda, yang ditentukan sebagai nilai dalam pemboleh ubah 'msg'.

Keluaran: Hy! Saya Aqsa Yasin

Sekarang tentukan jenis fungsi bersarang yang sama tanpa kata kunci kembali dan pemboleh ubah lulus 'msg' dalam parameter, dan anda akan mendapat output yang sama.

Keluaran: Helo

Fungsi Penutupan Ringkas

Gunakan kod yang sama, dengan sedikit perubahan pada dua baris terakhir. Dengan tali 'Helo', yang tunjuk_msg () kaedah dipanggil, dan kaedah yang dikembalikan dikaitkan dengan perkataan 'lain'. Semasa memanggil yang lain (), teks 'Helo' masih ingat, sementara tunjuk_msg () kaedah sudah selesai dijalankan. Pastikan untuk menambah pemboleh ubah 'msg' dalam fungsi luar.

Apabila anda menjalankan kod ini, ia akan menunjukkan bahawa fungsi dalaman, yang merupakan tunjuk (), telah diberikan kepada pemboleh ubah 'lain'.

Pengeluaran: .tunjukkan di 0x0000020CCED4D820>

Anda hanya boleh mencetak nama fungsi yang diberikan kepada pemboleh ubah 'lain' seperti:

cetak (lain.__nama__)

Ia akan mengeluarkan nama fungsi.

Keluaran: tunjuk

Sekarang, jika anda ingin melaksanakan pemboleh ubah ini sebagai fungsi, seperti kaedah lain, anda boleh melakukannya dengan menambahkan kurungan dan memanggilnya seperti ini:

lain = show_msg ("Hello")
yang lain ()
yang lain ()

Anda boleh memanggilnya seberapa banyak yang anda mahu.

Apabila anda menjalankan kod ini, ia akan memaparkan sesuatu seperti ini:

Pengeluaran:

Helo

Helo

Helo

Sekarang anda dapat melihat bahawa walaupun setelah selesai pelaksanaan fungsi luar, fungsi dalaman masih mengingat pemboleh ubah dan hal-hal lain yang dibuat atau ditentukan di ruang setempat.

Fungsi Penutupan menggunakan Parameter

Sekarang, kami telah menambahkan parameter sambil meneruskan pemboleh ubah dalam fungsi luar seperti:

def show_msg (msg)

Nilai yang diteruskan ke parameter fungsi luar akan diberikan kepada pemboleh ubah yang ditentukan dalam fungsi luar ini sebagai:

Mesej = msg

Lulus beberapa nilai rentetan dalam pemboleh ubah yang baru dibuat pada baris terakhir, seperti:

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

Sekarang anda harus memanggil fungsi ini seperti ini:

func1 ()
func2 ()

Anda akan mendapat output berikut yang ditunjukkan dalam gambar editor pengintip:

Di dalam Python, proses ini, dimana data (Hi atau Hello untuk senario ini) dilampirkan pada skrip, dinamakan Penutupan.

Pendaraban sederhana menggunakan Python Closure

Kami telah menentukan dua fungsi. Salah satunya adalah luar, yang didefinisikan pengganda, dan dalaman di mana nilainya akan dilalui semasa memanggil fungsi. Dalam fungsi luar, kami telah menyatakan pemboleh ubah dengan nilai pengganda yang ditentukan berlalu di dalamnya. Nilai pengganda ini 'n' telah digandakan dengan beberapa nilai 'x' yang diserahkan dalam pernyataan cetak ke fungsi dalaman. Fungsi dalaman kemudian dikembalikan, yang merupakan fungsi bersarang, dan setelah itu, pemboleh ubah telah disebut satu demi satu dalam pernyataan cetak.

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

Sekarang pemboleh ubah baru telah menetapkan beberapa nilai yang akan dilalui dalam parameter fungsi luar. Nilai ini akan disimpan dalam pemboleh ubah 'n', yang merupakan pengganda yang ditentukan dalam fungsi luar:

kali3 = keluar_multiply (3)
times5 = keluar_multiply (5)

Pemboleh ubah ini akan diberikan dengan lebih banyak nilai, yang akan disimpan ke dalam 'x' pemboleh ubah yang didefinisikan dalam fungsi dalaman yang perlu didarabkan dengan pengganda 'n'. Apabila kita mencetak pemboleh ubah yang dinamakan sebagai 'kali', fungsi dengan beberapa nilai integer 'x' ditugaskan dalam kurungan akan menjadikannya berlipat ganda dengan nilai fungsi luar 'n'.

Yang pertama akan keluaran 27 semasa melakukan penyataan cetak kerana berubah-ubah 'n' telah 3 sebagai pengganda, dan kami telah memberikan 9 sebagai bilangan bulat lain untuk didarabkan.

cetak (kali3 (9))

Yang kedua akan output 15 semasa melaksanakan pernyataan cetak kerana pemboleh ubah 'n' telah 3 sebagai pengganda, dan kami telah memberikan 5 sebagai bilangan bulat lain untuk didarabkan.

mencetak (kali 5 (3))

Yang terakhir akan output 30 semasa menjalankan pernyataan cetak kerana ia secara berulang kali memanggil pemboleh ubah fungsi untuk berfungsi. Kali pertama, masa telah 'n' mempunyai 3 sebagai pengganda, yang akan digandakan menjadi bilangan bulat 2. Pada pendaraban, ia akan dihasilkan 6. Sekarang, 6 ini akan digunakan sebagai nilai, kemudian diteruskan sebagai argumen ke fungsi pemboleh ubah kali, di mana 'n' pengganda pemboleh ubah ialah 5. Jadi bila 5 didarabkan dengan 6 ia akan menghasilkan 30.

cetak (kali5 (kali3 (2)))

Anda dapat melihat outputnya di konsol penyunting Spyder.

Kesimpulannya

Penutupan dapat melarang nilai global digunakan dan mempunyai bentuk penyembunyian data. Ini dapat memberikan pendekatan berorientasi objek atau entitas untuk masalah ini juga. Mudah-mudahan, setelah mengikuti panduan ini, anda dapat memperoleh asas-asas penutupan Python.

Cara menukar butang tetikus Kiri & Kanan pada PC Windows 10
Sudah menjadi kebiasaan bahawa semua peranti tetikus komputer dirancang secara ergonomik untuk pengguna tangan kanan. Tetapi ada peranti tetikus yang ...
Tiru klik Tetikus dengan melayang menggunakan Mouse Tanpa Klik di Windows 10
Menggunakan tetikus atau papan kekunci dalam keadaan salah penggunaan berlebihan boleh menyebabkan banyak masalah kesihatan, termasuk ketegangan, sind...
Tambahkan isyarat Tetikus ke Windows 10 menggunakan alat percuma ini
Dalam beberapa tahun kebelakangan ini komputer dan sistem operasi telah banyak berkembang. Ada saat ketika pengguna harus menggunakan perintah untuk m...