Jadual Kandungan
Apa yang menjadikan fungsi "tulen"?
Mengapa anda perlu mengambil berat tentang fungsi tulen?
Cara Menulis Lebih Banyak Fungsi Murni
Apabila tidak mengapa melanggar peraturan
Rumah pembangunan bahagian belakang Tutorial Python Apa fungsi murni dalam python

Apa fungsi murni dalam python

Jul 14, 2025 am 12:18 AM
python fungsi tulen

Fungsi tulen dalam Python merujuk kepada fungsi yang sentiasa mengembalikan output yang sama tanpa kesan sampingan yang diberikan input yang sama. Certinya termasuk: 1. Determinisme, iaitu, input yang sama selalu menghasilkan output yang sama; 2. Tiada kesan sampingan, iaitu, tiada pembolehubah luaran, tiada data input, dan tiada interaksi dengan dunia luar. Sebagai contoh, def add (a, b): return AB adalah fungsi tulen kerana tidak kira berapa kali menambah (2, 3) dipanggil, ia sentiasa mengembalikan 5 tanpa mengubah apa -apa lagi dalam program ini. Sebaliknya, fungsi yang mengubahsuai pembolehubah global atau menukar parameter input adalah fungsi bukan tujuan. Kelebihan fungsi tulen adalah: lebih mudah untuk diuji, lebih sesuai untuk pelaksanaan serentak, hasil cache untuk meningkatkan prestasi, dan boleh dipadankan dengan baik dengan alat pengaturcaraan berfungsi seperti MAP () dan penapis (). Cadangan untuk menulis fungsi tulen termasuk mengelakkan penggunaan atau mengubahsuai pembolehubah global, tidak mengubah parameter input, dan memisahkan operasi I/O dari logik. Walaupun tidak semua fungsi mestilah fungsi tulen, apabila membina aplikasi yang kompleks, fungsi murni harus lebih disukai dalam logik teras, dan kesan sampingan harus digunakan dalam pembalakan, penjimatan cakera dan senario lain.

Apa fungsi murni dalam python

Fungsi tulen dalam Python adalah fungsi yang, diberi input yang sama, akan sentiasa mengembalikan output yang sama dan tidak mempunyai kesan sampingan. Ini bermakna ia tidak mengubah suai pembolehubah di luar skopnya, bermutasi data input, atau berinteraksi dengan dunia luar (seperti mencetak ke skrin atau menulis ke fail).

Apa fungsi murni dalam python

Ini mungkin terdengar abstrak pada mulanya, tetapi apabila anda mendapat idea, ia menjadikan kod anda lebih diramalkan dan lebih mudah untuk diuji.


Apa yang menjadikan fungsi "tulen"?

Terdapat dua ciri utama fungsi murni:

Apa fungsi murni dalam python
  • Deterministik : Input yang sama selalu memberikan output yang sama.
  • Tiada kesan sampingan : ia tidak mengubah apa -apa di luar dirinya sendiri - bukan pembolehubah global, bukan argumen input, tiada apa -apa.

Inilah contoh fungsi murni:

 def tambah (a, b):
    Kembali AB

Tidak kira berapa kali anda memanggil add(2, 3) , ia akan sentiasa kembali 5 . Dan ia tidak menyentuh apa -apa lagi dalam program anda.

Apa fungsi murni dalam python

Sekarang bandingkan dengan fungsi yang tidak suci:

 kiraan = 0

kenaikan def ():
    Kiraan global
    kiraan = 1

Fungsi ini mengubah pembolehubah di luar dirinya sendiri ( count ), jadi ia tidak murni.


Mengapa anda perlu mengambil berat tentang fungsi tulen?

Fungsi tulen membantu mengurangkan pepijat dan membuat kod lebih mudah untuk alasan. Berikut adalah beberapa faedah praktikal:

  • Lebih mudah untuk diuji : Anda tidak perlu bimbang tentang persediaan atau pembersihan kerana mereka tidak bergantung atau mengubah keadaan luaran.
  • Lebih baik untuk kesesuaian : kerana mereka tidak berkongsi keadaan, mereka lebih selamat untuk digunakan secara selari atau pelbagai persekitaran.
  • Cacheable : Kerana output hanya bergantung kepada input, anda boleh hasil cache untuk prestasi.

Mereka juga bermain dengan baik dengan alat pengaturcaraan berfungsi seperti map() , filter() , dan perpustakaan seperti functools .


Cara Menulis Lebih Banyak Fungsi Murni

Tidak semestinya (atau perlu) untuk menulis semua kod anda dengan cara ini, tetapi berikut adalah beberapa tabiat untuk bersandar:

  • Elakkan menggunakan atau mengubahsuai pembolehubah global.
  • Jangan ubah parameter input - terutamanya yang boleh berubah seperti senarai atau dicts. Sebaliknya, buat nilai baru dan kembalikannya.
  • Pastikan operasi I/O (seperti membaca/menulis fail atau percetakan) berasingan daripada logik.

Sebagai contoh, bukannya:

 def add_item (lst, item):
    lst.append (item)

Lakukan ini:

 def add_item (lst, item):
    kembali lst [item]

Versi kedua tidak mengubah senarai asal - ia mengembalikan yang baru.


Apabila tidak mengapa melanggar peraturan

Mari kita nyata - tidak setiap fungsi perlu murni. Kadang -kadang anda perlu mengemas kini keadaan atau bekerja dengan sistem luaran. Itu betul -betul baik. Hanya sedar kapan dan mengapa anda melakukannya.

Jika anda membina aplikasi kompleks atau bekerja dengan saluran paip data yang besar, bertujuan untuk kesucian di mana ia paling penting - logik teras, transformasi, dan peraturan perniagaan. Simpan kesan sampingan untuk perkara seperti pembalakan, menyimpan ke cakera, atau interaksi pengguna.

Pada dasarnya itu sahaja.

Atas ialah kandungan terperinci Apa fungsi murni dalam 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

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

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.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

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 kaedah kelas dalam python Apakah kaedah kelas dalam python Aug 21, 2025 am 04:12 AM

Classmethodsinpythonareboundtotheclassandnottoinstances, membolehkanThemTobeCalledWithoutCreatingAnobject.1.theyaredefinedusingthe@Classmethoddecoratorandtakeclsasthefirstparameter, referringtotheclassitervarfe.2.TheycanCasteScess,

contoh giliran python asyncio contoh giliran python asyncio Aug 21, 2025 am 02:13 AM

Asyncio.queue adalah alat giliran untuk komunikasi yang selamat antara tugas -tugas asynchronous. 1. Pengeluar menambah data melalui Awaitqueue.put (item), dan pengguna menggunakan Awaitqueue.get () untuk mendapatkan data; 2. Untuk setiap item yang anda proses, anda perlu memanggil giliran.task_done () untuk menunggu giliran.join () untuk menyelesaikan semua tugas; 3. Gunakan tiada sebagai isyarat akhir untuk memberitahu pengguna untuk berhenti; 4 Apabila pengguna berganda, isyarat akhir perlu dihantar atau semua tugas telah diproses sebelum membatalkan tugas; 5. Giliran menyokong menetapkan kapasiti had maksimum, meletakkan dan mendapatkan operasi secara automatik menggantung dan tidak menyekat gelung acara, dan program akhirnya melewati Canc

Bagaimana cara menjalankan skrip python dan melihat output dalam panel berasingan dalam teks luhur? Bagaimana cara menjalankan skrip python dan melihat output dalam panel berasingan dalam teks luhur? Aug 17, 2025 am 06:06 AM

ToseepythonoutputinaseparatePanelinsublimetext, usethebuilt-inbuildsystembysavingyourfilewitha.pyextensionAndpressingctrl b (orcmd b) .2.ensurethecorrectbuSelectedByGyGyGyGyToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToToStoToToToToToToToToToToToToToSTORS

Bagaimana untuk menggunakan ungkapan biasa dengan modul Re di Python? Bagaimana untuk menggunakan ungkapan biasa dengan modul Re di Python? Aug 22, 2025 am 07:07 AM

Ekspresi biasa dilaksanakan di Python melalui modul Re untuk mencari, memadankan dan memanipulasi rentetan. 1. Gunakan re.search () untuk mencari perlawanan pertama dalam keseluruhan rentetan, re.match () hanya sepadan pada permulaan rentetan; 2. Gunakan kurungan () untuk menangkap subkumpulan yang sepadan, yang boleh dinamakan untuk meningkatkan kebolehbacaan; 3. Re.findall () mengembalikan semua perlawanan yang tidak bertindih, dan re.finditer () mengembalikan iterator objek yang sepadan; 4. Re.sub () menggantikan teks yang sepadan dan menyokong penggantian fungsi dinamik; 5. Corak umum termasuk \ d, \ w, \ s, dan lain -lain, anda boleh menggunakan re.ignorecase, re.multiline, re.dotall, re re.

Bagaimana untuk membina dan menjalankan python dalam teks luhur? Bagaimana untuk membina dan menjalankan python dalam teks luhur? Aug 22, 2025 pm 03:37 PM

Memastikanpythonisinstalledbyrunningpython-versionorpython3-versionintheterminal; ifnotinstalled, downloadfrompython.organdaddtopath.2.insublimetext, goototools> buangansystem>

Cara Menggunakan Pembolehubah dan Jenis Data di Python Cara Menggunakan Pembolehubah dan Jenis Data di Python Aug 20, 2025 am 02:07 AM

VariablesinpythonarecreatedbyssigningavalueusingThe = operator, andDatatypessuchasint, float, str, bool, andnonetypedefinetheKindofdatabeingstored, withpythonbeingdynamicallytypecheckecheckecheckechechecharmartimeusingype ()

Cara Lulus Argumen Barisan Perintah ke Skrip di Python Cara Lulus Argumen Barisan Perintah ke Skrip di Python Aug 20, 2025 pm 01:50 PM

Penggunaan.ArgvforsimpleArentGumentAccess, whereagrumentemanmuallyhandledandnoautomaticvalidationorhelpispisprovided.2.useAragparseforrobustintinterfaces, asitsupportsautomatichelp, dyechecking, opsyenal

Cara Debug Aplikasi Python Jauh di VSCODE Cara Debug Aplikasi Python Jauh di VSCODE Aug 30, 2025 am 06:17 AM

Untuk menyahpepijat aplikasi Python jauh, anda perlu menggunakan debugpy dan mengkonfigurasi pemancar port dan pemetaan jalan: Pertama, pasang debugpy pada mesin jauh dan ubah suai kod untuk mendengar port 5678, hantar port jauh ke kawasan tempatan melalui terowong SSH, kemudian konfigurasi Akhirnya, mulakan aplikasi dan sambungkan ke debugger untuk merealisasikan debugging jarak jauh, pemeriksaan berubah -ubah dan melangkah melangkah. Seluruh proses bergantung pada debugpy, port pemancar dan pemadanan jalan yang tepat.

See all articles