Rumah pembangunan bahagian belakang Tutorial Python 什么是匿名函数?Python匿名函数有什么用?

什么是匿名函数?Python匿名函数有什么用?

Aug 17, 2018 pm 05:54 PM
fungsi tanpa nama

当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便。

在Python中,对匿名函数提供了有限支持。还是以map()函数为例,计算f(x)=x2时,除了定义一个f(x)的函数外,还可以直接传入匿名函数:

>>> list(map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9]))
[1, 4, 9, 16, 25, 36, 49, 64, 81]
Salin selepas log masuk

通过对比可以看出,匿名函数lambda x: x * x实际上就是:

def f(x):
    return x * x
Salin selepas log masuk

关键字lambda表示匿名函数,冒号前面的x表示函数参数。

匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果。

用匿名函数有个好处,因为函数没有名字,不必担心函数名冲突。此外,匿名函数也是一个函数对象,也可以把匿名函数赋值给一个变量,再利用变量来调用该函数:

>>> f = lambda x: x * x
>>> f
<function <lambda> at 0x101c6ef28>
>>> f(5)25
Salin selepas log masuk

同样,也可以把匿名函数作为返回值返回,比如:

def build(x, y):
    return lambda: x * x + y * y
Salin selepas log masuk

封装细节,提高安全性和可控性,经常在全局作用域中被用于函数外部,从而限制向全局作用域中添加过多的变量和函数。
在全局作用域中使用块级作用域可以减少闭包占用内存的问题,因为没有指向匿名函数的引用,只要函数执行完毕,就可以立即销毁其作用域链了。

模仿块级(私有)作用域:

function box(){
    for(var i=0;i<5;i++){  //块级作用域(js无)
    }   
     var i //即便重新声明,也不会影响之前的值
    alert(i);//5
 }
box();
Salin selepas log masuk


Atas ialah kandungan terperinci 什么是匿名函数?Python匿名函数有什么用?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

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

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Penggunaan dan ciri-ciri fungsi tanpa nama C++ Penggunaan dan ciri-ciri fungsi tanpa nama C++ Apr 19, 2024 am 09:03 AM

Fungsi tanpa nama, juga dikenali sebagai ungkapan lambda, ialah fungsi yang tidak menentukan nama dan digunakan untuk kegunaan sekali atau untuk menghantar penunjuk fungsi. Ciri termasuk: tidak mahu dikenali, penggunaan sekali sahaja, penutupan, inferens jenis pulangan. Dalam amalan, ia sering digunakan untuk mengisih atau panggilan fungsi satu masa yang lain.

Analisis senario aplikasi fungsi tanpa nama bagi fungsi Golang Analisis senario aplikasi fungsi tanpa nama bagi fungsi Golang May 16, 2023 pm 10:51 PM

Sebagai bahasa pengaturcaraan moden, Golang (juga dikenali sebagai bahasa Go) mempunyai banyak ciri yang berkuasa. Antaranya, fungsi tanpa nama merupakan konsep yang sangat penting di Golang dan digunakan secara meluas dalam pelbagai senario. Dalam artikel ini, kami akan menganalisis secara mendalam senario aplikasi fungsi tanpa nama dalam fungsi Golang. Pengendali Acara Dalam pengendali acara, fungsi tanpa nama adalah alat yang sangat mudah dan praktikal. Logik tersuai boleh dihantar kepada pengendali acara melalui fungsi tanpa nama, seperti: funcmain(){bt

Ungkapan Python Lambda: disingkatkan, ringkas, berkuasa Ungkapan Python Lambda: disingkatkan, ringkas, berkuasa Feb 19, 2024 pm 08:10 PM

ungkapan pythonLambda ialah alat yang berkuasa dan fleksibel untuk mencipta kod yang ringkas, boleh dibaca dan mudah digunakan. Ia bagus untuk mencipta fungsi tanpa nama dengan cepat yang boleh dihantar sebagai hujah kepada fungsi lain atau disimpan dalam pembolehubah. Sintaks asas ungkapan Lambda adalah seperti berikut: lambdaarguments:expression Contohnya, ungkapan Lambda berikut menambah dua nombor: lambdax,y:x+y Ungkapan Lambda ini boleh dihantar ke fungsi lain sebagai argumen seperti berikut: defsum( x ,y):returnx+yresult=sum(lambdax,y:x+y,1,2)Dalam contoh ini

Bagaimana untuk menggunakan fungsi dan penutupan tanpa nama PHP7 untuk mencapai pemprosesan logik kod yang lebih fleksibel? Bagaimana untuk menggunakan fungsi dan penutupan tanpa nama PHP7 untuk mencapai pemprosesan logik kod yang lebih fleksibel? Oct 21, 2023 am 10:21 AM

Bagaimana untuk menggunakan fungsi dan penutupan tanpa nama PHP7 untuk mencapai pemprosesan logik kod yang lebih fleksibel? Sebelum PHP7, kami sering menggunakan fungsi untuk merangkum sekeping logik tertentu, dan kemudian memanggil fungsi ini dalam kod untuk melaksanakan fungsi tertentu. Walau bagaimanapun, kadangkala kita mungkin perlu menentukan beberapa blok logik sementara dalam kod ini tidak perlu mencipta fungsi bebas, dan pada masa yang sama, kita tidak mahu memperkenalkan terlalu banyak pembolehubah global ke dalam kod. PHP7 memperkenalkan fungsi dan penutupan tanpa nama, yang boleh menyelesaikan masalah ini dengan baik. Fungsi tanpa nama ialah fungsi tanpa nama

Bolehkah fungsi tanpa nama Golang mengembalikan berbilang nilai? Bolehkah fungsi tanpa nama Golang mengembalikan berbilang nilai? Apr 13, 2024 pm 04:09 PM

Ya, fungsi tanpa nama dalam bahasa Go boleh mengembalikan berbilang nilai. Sintaks: func(arg1,arg2,...,argN)(ret1,ret2,...,retM){//Function body}. Penggunaan: Gunakan operator := untuk menerima nilai pulangan menggunakan kata kunci pulangan untuk mengembalikan berbilang nilai.

Fungsi tanpa nama dalam PHP8.0 Fungsi tanpa nama dalam PHP8.0 May 14, 2023 am 08:31 AM

PHP8.0 ialah versi terkini bahasa pengaturcaraan PHP. Satu kemas kini penting ialah penambahbaikan dan peningkatan kepada fungsi tanpa nama. Fungsi tanpa nama (juga dipanggil penutupan) ialah jenis fungsi khas yang boleh dibuat secara dinamik pada masa jalan dan dihantar ke fungsi lain atau disimpan dalam pembolehubah. Dalam PHP, fungsi tanpa nama adalah penting untuk pengaturcaraan lanjutan dan pembangunan web. PHP8.0 menyediakan beberapa sintaks dan ciri baharu yang menjadikan fungsi tanpa nama lebih fleksibel dan lebih mudah untuk digunakan. Beberapa kemas kini adalah seperti berikut: Taipkan pengisytiharan untuk parameter fungsi dalam PHP8.0,

Bagaimanakah fungsi tanpa nama dilaksanakan dalam fungsi golang? Bagaimanakah fungsi tanpa nama dilaksanakan dalam fungsi golang? Jun 03, 2024 pm 07:09 PM

Fungsi tanpa nama dalam fungsi dalam Go membenarkan penciptaan fungsi sekali sahaja dalam badan fungsi tanpa mengisytiharkannya secara eksplisit. Mereka ditakrifkan dengan menggunakan kata kunci func dan meninggalkan nama fungsi. Dilaksanakan melalui penutupan, yang mengandungi kod badan fungsi dan rujukan kepada semua pembolehubah tempatan dalam fungsi yang mengandungi fungsi tanpa nama. Sebagai contoh, fungsi tanpa nama boleh digunakan dalam pengisihan. Fungsi penghirisan untuk mengisih kepingan integer.

Ungkapan Lambda Python: Menjadikan Pengaturcaraan Lebih Mudah Ungkapan Lambda Python: Menjadikan Pengaturcaraan Lebih Mudah Feb 19, 2024 pm 09:54 PM

Ungkapan Lambda python ialah fungsi kecil tanpa nama yang menyimpan ungkapan dalam pembolehubah dan mengembalikan nilainya. Ungkapan Lambda sering digunakan untuk melaksanakan tugas mudah yang boleh dicapai dengan menulis fungsi yang berasingan, tetapi ungkapan Lambda boleh menjadikan kod lebih ringkas dan boleh dibaca. Sintaks ungkapan Lambda adalah seperti berikut: lambdaarguments: expressionarguments ialah senarai parameter yang diterima oleh ungkapan Lambda dan ungkapan ialah badan ungkapan Lambda, yang mengandungi kod yang perlu dilaksanakan. Sebagai contoh, ungkapan Lambda berikut menambah dua nombor dan mengembalikan jumlahnya: lambdax,

See all articles