Jadual Kandungan
2. Pembolehubah boleh menunjuk kepada fungsi " > 2. Pembolehubah boleh menunjuk kepada fungsi
三、函数名也是变量" >三、函数名也是变量
四、传入函数" >四、传入函数
5. Ringkasan " > 5. Ringkasan
Rumah pembangunan bahagian belakang Tutorial Python Artikel untuk membantu anda memahami fungsi peringkat tinggi Python

Artikel untuk membantu anda memahami fungsi peringkat tinggi Python

Jul 25, 2023 pm 04:07 PM
python fungsi pesanan yang lebih tinggi

1. Apakah fungsi pesanan lebih tinggi?

Fungsi tertib tinggi ialah fungsi fungsi yang sangat berguna dalam Python Apa yang dipanggil fungsi tertib tinggi ialah fungsi boleh digunakan untuk menerima fungsi lain sebagai parameter fungsi.

Melalui analisis kod kes, mendalami konsep langkah demi langkah.


2. Pembolehubah boleh menunjuk kepada fungsi

Ambil fungsi nilai mutlak terbina dalam Python abs() sebagai contoh.

Panggil fungsi ini dengan kod berikut:

print(abs(-10))
Salin selepas log masuk

Hasil larian:

Artikel untuk membantu anda memahami fungsi peringkat tinggi Python

hanya tulis?

print(abs)
Salin selepas log masuk

Hasil larian:

Artikel untuk membantu anda memahami fungsi peringkat tinggi Python

🎜🎜

可见,abs(-10)是函数调用,而abs是函数本身。

要获得函数调用结果,可以把结果赋值给变量:

x = abs(-10)
print(x)
Salin selepas log masuk

运行结果:

Artikel untuk membantu anda memahami fungsi peringkat tinggi Python

但是,如果把函数本身赋值给变量呢?

f = abs
print(f)
Salin selepas log masuk

运行结果:

Artikel untuk membantu anda memahami fungsi peringkat tinggi Python

结论:

函数本身也可以赋值给变量,即:变量可以指向函数。

如果一个变量指向了一个函数,那么,可否通过该变量来调用这个函数?

代码验证:

f = abs
print(f(-10))
Salin selepas log masuk

运行结果:

Artikel untuk membantu anda memahami fungsi peringkat tinggi Python

结果相同,说明变量f现在已经指向了abs函数本身。直接调用abs()函数和调用变量f()完全相同。


三、函数名也是变量

那么函数名是什么呢?函数名其实就是指向函数的变量!对于abs()这个函数,完全可以把函数名abs看成变量,它指向一个可以计算绝对值的函数!

把abs指向其他对象,会有什么情况发生?

abs = 10
print(abs(-10))
Salin selepas log masuk

运行结果:

Artikel untuk membantu anda memahami fungsi peringkat tinggi Python

代码解析:

把abs指向10后,就无法通过abs(-10)调用该函数了!因为abs这个变量已经不指向求绝对值函数而是指向一个整数10!

当然实际代码绝对不能这么写,这里是为了说明函数名也是变量。要恢复abs函数,请重启Python交互环境。

注:

由于abs函数实际上是定义在builtin模块中的,所以要让修改abs变量的指向在其它模块也生效,要用builtin.abs = 10。


四、传入函数

既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。

一个最简单的高阶函数:

def add(x, y, f):  
  return f(x) + f(y)
Salin selepas log masuk

当调用add(-5, 6, abs)时,参数x,y和f分别接收-5,6和abs,根据函数定义,可以推导计算过程为:

  x = -5
    y = 6
    f = abs
    f(x) + f(y) == abs(-5) + abs(6) == 11
    return 11


print(add(-5, 6, abs))
Salin selepas log masuk

用代码验证一下:

print(add(-5, 6, abs))
Salin selepas log masuk

Artikel untuk membantu anda memahami fungsi peringkat tinggi Python

注:

编写高阶函数,就是让函数的参数能够接收别的函数。

Pass berfungsi sebagai parameter Fungsi sedemikian dipanggil fungsi tertib lebih tinggi merujuk kepada paradigma pengaturcaraan yang sangat abstrak ini.


5. Ringkasan

Artikel ini adalah berdasarkan asas Python dan memperkenalkan penggunaan fungsi tertib tinggi dalam fungsi Python. Setiap bahagian dianalisis melalui kes dan dipaparkan dengan rendering operasi untuk membolehkan pembaca memahami dengan lebih baik. Ia memberi tumpuan kepada masalah pelaporan ralat apabila menghantar fungsi dalam operasi sebenar.

Atas ialah kandungan terperinci Artikel untuk membantu anda memahami fungsi peringkat tinggi 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)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
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)

Apakah fungsi jumlah bahasa C? Apakah fungsi jumlah bahasa C? Apr 03, 2025 pm 02:21 PM

Tiada fungsi jumlah terbina dalam dalam bahasa C, jadi ia perlu ditulis sendiri. Jumlah boleh dicapai dengan melintasi unsur -unsur array dan terkumpul: Versi gelung: SUM dikira menggunakan panjang gelung dan panjang. Versi Pointer: Gunakan petunjuk untuk menunjuk kepada unsur-unsur array, dan penjumlahan yang cekap dicapai melalui penunjuk diri sendiri. Secara dinamik memperuntukkan versi Array: Perlawanan secara dinamik dan uruskan memori sendiri, memastikan memori yang diperuntukkan dibebaskan untuk mengelakkan kebocoran ingatan.

Siapa yang dibayar lebih banyak Python atau JavaScript? Siapa yang dibayar lebih banyak Python atau JavaScript? Apr 04, 2025 am 12:09 AM

Tidak ada gaji mutlak untuk pemaju Python dan JavaScript, bergantung kepada kemahiran dan keperluan industri. 1. Python boleh dibayar lebih banyak dalam sains data dan pembelajaran mesin. 2. JavaScript mempunyai permintaan yang besar dalam perkembangan depan dan stack penuh, dan gajinya juga cukup besar. 3. Faktor mempengaruhi termasuk pengalaman, lokasi geografi, saiz syarikat dan kemahiran khusus.

Adakah distinctidistinguish berkaitan? Adakah distinctidistinguish berkaitan? Apr 03, 2025 pm 10:30 PM

Walaupun berbeza dan berbeza berkaitan dengan perbezaan, ia digunakan secara berbeza: berbeza (kata sifat) menggambarkan keunikan perkara itu sendiri dan digunakan untuk menekankan perbezaan antara perkara; Berbeza (kata kerja) mewakili tingkah laku atau keupayaan perbezaan, dan digunakan untuk menggambarkan proses diskriminasi. Dalam pengaturcaraan, berbeza sering digunakan untuk mewakili keunikan unsur -unsur dalam koleksi, seperti operasi deduplikasi; Berbeza dicerminkan dalam reka bentuk algoritma atau fungsi, seperti membezakan ganjil dan bahkan nombor. Apabila mengoptimumkan, operasi yang berbeza harus memilih algoritma dan struktur data yang sesuai, sementara operasi yang berbeza harus mengoptimumkan perbezaan antara kecekapan logik dan memberi perhatian untuk menulis kod yang jelas dan mudah dibaca.

Bagaimana memahami! X dalam c? Bagaimana memahami! X dalam c? Apr 03, 2025 pm 02:33 PM

! X Memahami! X adalah bukan operator logik dalam bahasa C. Ia booleans nilai x, iaitu, perubahan benar kepada perubahan palsu, palsu kepada benar. Tetapi sedar bahawa kebenaran dan kepalsuan dalam C diwakili oleh nilai berangka dan bukannya jenis Boolean, bukan sifar dianggap sebagai benar, dan hanya 0 dianggap sebagai palsu. Oleh itu ,! X memperkatakan nombor negatif sama seperti nombor positif dan dianggap benar.

Bolehkah Pengenal Pengguna Bahasa C mengandungi ruang? Bolehkah Pengenal Pengguna Bahasa C mengandungi ruang? Apr 03, 2025 pm 01:51 PM

Pengenal bahasa C tidak boleh mengandungi ruang kerana mereka boleh menyebabkan kekeliruan dan kesukaran dalam mengekalkan. Peraturan khusus adalah seperti berikut: mereka mesti bermula dengan huruf atau garis bawah. Boleh mengandungi huruf, nombor, atau garis bawah. Tidak boleh mengandungi watak haram (seperti simbol khas).

Apakah jumlah maksud dalam bahasa C? Apakah jumlah maksud dalam bahasa C? Apr 03, 2025 pm 02:36 PM

Tiada fungsi jumlah terbina dalam dalam C untuk jumlah, tetapi ia boleh dilaksanakan dengan: menggunakan gelung untuk mengumpul unsur-unsur satu demi satu; menggunakan penunjuk untuk mengakses dan mengumpul unsur -unsur satu demi satu; Untuk jumlah data yang besar, pertimbangkan pengiraan selari.

Bagaimana cara menggunakan nomenclature ular dalam bahasa c? Bagaimana cara menggunakan nomenclature ular dalam bahasa c? Apr 03, 2025 pm 01:03 PM

Dalam bahasa C, nomenclature ular adalah konvensyen gaya pengekodan, yang menggunakan garis bawah untuk menyambungkan beberapa perkataan untuk membentuk nama pembolehubah atau nama fungsi untuk meningkatkan kebolehbacaan. Walaupun ia tidak akan menjejaskan kompilasi dan operasi, penamaan panjang, isu sokongan IDE, dan bagasi sejarah perlu dipertimbangkan.

Adakah pengeluaran halaman H5 memerlukan penyelenggaraan berterusan? Adakah pengeluaran halaman H5 memerlukan penyelenggaraan berterusan? Apr 05, 2025 pm 11:27 PM

Halaman H5 perlu dikekalkan secara berterusan, kerana faktor -faktor seperti kelemahan kod, keserasian pelayar, pengoptimuman prestasi, kemas kini keselamatan dan peningkatan pengalaman pengguna. Kaedah penyelenggaraan yang berkesan termasuk mewujudkan sistem ujian lengkap, menggunakan alat kawalan versi, kerap memantau prestasi halaman, mengumpul maklum balas pengguna dan merumuskan pelan penyelenggaraan.

See all articles