Seperti yang kita ketahui, fungsi adalah blok pernyataan yang digunakan untuk melakukan beberapa tugas tertentu dalam pemrograman. Ini juga membantu memecah kelompok besar kode menjadi potongan atau modul yang lebih kecil. Fungsi dapat dipanggil di mana saja dan berapa kali dalam suatu program. Ini memungkinkan kita untuk menggunakan kembali kode hanya dengan memanggil fungsi atau blok tertentu dalam suatu program. Dengan demikian, ini menghindari pengulangan kode yang sama. Kita dapat mendefinisikan fungsi di dalam kelas, modul, fungsi bersarang, dll Show
Fitur FungsiBerikut adalah fitur-fitur dari Fungsi Python
Aturan untuk mendefinisikan fungsi
Buat fungsi dengan PythonUntuk membuat sebuah fungsi, kita perlu menggunakan kata kunci def untuk mendeklarasikan atau menulis sebuah fungsi dengan Python. Berikut adalah sintaks untuk membuat fungsi Sintaksis Mari kita buat program fungsi dengan Python Kesenanganku. py Keluaran Pemanggilan Fungsi dengan PythonSetelah sebuah fungsi dibuat dengan Python, kita dapat memanggilnya dengan menulis nama_fungsi() itu sendiri atau fungsi lain/fungsi bersarang. Berikut ini adalah sintaks untuk memanggil suatu fungsi Sintaksis Pertimbangkan contoh berikut untuk mencetak Pesan Selamat Datang menggunakan fungsi di Python CallFun. py Keluaran Hello World Welcome to the JavaTpoint Dalam contoh di atas, kita memanggil fungsi MyFun() yang mencetak pernyataan Memanggil Fungsi Bersarang dengan PythonKetika kita membangun satu fungsi di dalam yang lain, itu disebut fungsi bersarang. Kita dapat membuat fungsi bersarang menggunakan kata kunci def. Setelah membuat fungsi, kita harus memanggil fungsi luar dan dalam untuk mengeksekusi pernyataan. Mari kita buat sebuah program untuk memahami konsep fungsi bersarang dan bagaimana kita dapat memanggil fungsi tersebut Sarang. py Keluaran Hello, it is the outer function Hello, it is the inner function_ Seperti yang dapat kita lihat pada contoh di atas, fungsi InFun() didefinisikan di dalam fungsi OutFun(). Untuk memanggil fungsi InFun(), pertama-tama kita memanggil fungsi OutFun() di dalam program. Setelah itu, fungsi OutFun() akan mulai dijalankan dan kemudian memanggil InFun() sebagai output di atas Catatan. Untuk memanggil fungsi dalam, pertama-tama kita harus memanggil fungsi luar. Jika fungsi eksternal tidak dipanggil, fungsi dalam tidak akan dijalankanProgram untuk mencetak perkalian dua angka menggunakan fungsi bersarang di Python Nest_arg. py Keluaran Display the value of outer variable 6 Display the sum of inner function 8 Berfungsi sebagai Objek Kelas SatuDalam Python, fungsinya sebagai Objek Kelas Satu. Karena memperlakukan sama dengan objek, dan memiliki properti dan metode yang sama dengan objek. Suatu fungsi dapat ditugaskan ke variabel, meneruskannya sebagai argumen, menyimpannya dalam struktur data dan mengembalikan nilai dari fungsi lain. Itu bisa dimanipulasi, seperti objek lain di Python. Selanjutnya, semua data dalam program Python direpresentasikan dalam objek atau relasi. Oleh karena itu juga disebut warga negara kelas pertama dari fungsi Python Fungsi dalam, juga dikenal sebagai fungsi bersarang, adalah fungsi yang Anda tentukan di dalam fungsi lain. Di Python, fungsi semacam ini memiliki akses langsung ke variabel dan nama yang ditentukan dalam fungsi terlampir. Fungsi bagian dalam memiliki banyak kegunaan, terutama sebagai pabrik penutup dan fungsi dekorator Dalam tutorial ini, Anda akan mempelajari caranya
Bonus Gratis. Klik di sini untuk mendapatkan Cheat Sheet Python dan mempelajari dasar-dasar Python 3, seperti bekerja dengan tipe data, kamus, daftar, dan fungsi Python Membuat Fungsi Dalam PythonFungsi yang didefinisikan di dalam fungsi lain dikenal sebagai fungsi dalam atau fungsi bersarang. Di Python, fungsi semacam ini dapat diakses di fungsi terlampir. Berikut adalah contoh cara membuat fungsi batin dengan Python >>> _Dalam kode ini, Anda mendefinisikan _6 di dalam 7 untuk mencetak pesan 8 ke layar. Untuk melakukannya, hubungi _6 di baris terakhir 7. Ini adalah cara tercepat untuk menulis fungsi dalam dengan Python. Namun, fungsi dalam memberikan banyak kemungkinan menarik di luar apa yang Anda lihat dalam contoh iniFitur inti dari fungsi dalam adalah kemampuannya untuk mengakses variabel dan objek dari fungsi penutupnya bahkan setelah fungsi ini dikembalikan. Fungsi penutup menyediakan ruang nama yang dapat diakses oleh fungsi bagian dalam >>> _Sekarang Anda dapat meneruskan string sebagai argumen ke 7, dan 6 akan mengakses argumen itu melalui nama 3. Nama ini, bagaimanapun, didefinisikan dalam 7. Nama yang Anda tetapkan dalam lingkup lokal dari fungsi luar dikenal sebagai nama nonlokal. Mereka bukan lokal dari sudut pandang _6Berikut adalah contoh cara membuat dan menggunakan fungsi dalam yang lebih rumit >>> _Di _6, pertama-tama Anda memvalidasi data input untuk memastikan bahwa pengguna Anda memberikan bilangan bulat yang sama dengan atau lebih besar dari nol. Kemudian Anda mendefinisikan fungsi dalam rekursif yang disebut 7 yang melakukan perhitungan faktorial dan mengembalikan hasilnya. Langkah terakhir adalah menelepon 7Catatan. Untuk pembahasan yang lebih mendetail tentang fungsi rekursi dan rekursif, lihat Berpikir Secara Rekursif dengan Python dan Rekursi dengan Python. Sebuah Pengantar Keuntungan utama menggunakan pola ini adalah, dengan melakukan semua pemeriksaan argumen di fungsi luar, Anda dapat dengan aman melewati pemeriksaan kesalahan di fungsi dalam dan fokus pada komputasi yang ada. Hilangkan iklanMenggunakan Fungsi Dalam. DasarKasus penggunaan fungsi dalam Python bervariasi. Anda dapat menggunakannya untuk menyediakan enkapsulasi dan menyembunyikan fungsi Anda dari akses eksternal, Anda dapat menulis fungsi dalam pembantu, dan Anda juga dapat membuat penutup dan dekorator. Di bagian ini, Anda akan mempelajari tentang dua kasus penggunaan fungsi dalam sebelumnya, dan di bagian selanjutnya, Anda akan mempelajari cara membuat dan Menyediakan EnkapsulasiKasus penggunaan umum fungsi dalam muncul saat Anda perlu melindungi, atau menyembunyikan, fungsi tertentu dari semua yang terjadi di luarnya sehingga fungsi tersebut benar-benar tersembunyi dari lingkup global. Perilaku semacam ini umumnya dikenal sebagai enkapsulasi Inilah contoh yang menyoroti konsep itu >>> _Dalam contoh ini, Anda tidak dapat mengakses ________12______9 secara langsung. Jika Anda mencoba melakukannya, maka Anda mendapatkan 0. Itu karena _1 benar-benar menyembunyikan 9, mencegah Anda mengaksesnya dari lingkup globalMembangun Fungsi Batin PembantuTerkadang Anda memiliki fungsi yang menjalankan potongan kode yang sama di beberapa tempat di dalam tubuhnya. Misalnya, Anda ingin menulis sebuah fungsi untuk memproses file CSV yang berisi informasi tentang hotspot Wi-Fi di New York City. Untuk mengetahui jumlah total hotspot di New York serta perusahaan yang menyediakan sebagian besar, Anda membuat skrip berikut
Di sini, 3 mengambil 4 sebagai argumen. Fungsi memeriksa apakah _4 adalah jalur berbasis string ke file fisik atau. Kemudian ia memanggil fungsi batin pembantu 6, yang mengambil objek file dan melakukan operasi berikut
Jika Anda menjalankan fungsi, maka Anda mendapatkan output berikut >>> _Apakah Anda memanggil _3 dengan jalur file berbasis string atau dengan objek file, Anda mendapatkan hasil yang samaMenggunakan Fungsi Pembantu Dalam vs PribadiBiasanya, Anda membuat fungsi batin pembantu seperti 6 saat Anda ingin menyediakan enkapsulasi. Anda juga dapat membuat fungsi dalam jika Anda pikir Anda tidak akan memanggilnya di tempat lain selain dari fungsi yang memuatnyaMeskipun menulis fungsi pembantu Anda sebagai fungsi dalam mencapai hasil yang diinginkan, Anda mungkin akan lebih baik jika mengekstraknya sebagai fungsi tingkat atas. Dalam hal ini, Anda dapat menggunakan garis bawah di depan ( 1) pada nama fungsi untuk menunjukkan bahwa fungsi tersebut bersifat pribadi untuk modul atau kelas saat ini. Ini akan memungkinkan Anda untuk mengakses fungsi pembantu Anda dari tempat lain di modul atau kelas saat ini dan menggunakannya kembali sesuai kebutuhanMengekstrak fungsi dalam ke fungsi pribadi tingkat atas dapat membuat kode Anda lebih bersih dan lebih mudah dibaca. Praktek ini dapat menghasilkan fungsi yang akibatnya menerapkan prinsip tanggung jawab tunggal Mempertahankan Status Dengan Fungsi Dalam. PenutupanDalam Python, fungsinya adalah. Ini berarti mereka setara dengan objek lain, seperti angka, string, daftar, tupel, modul, dan sebagainya. Anda dapat membuat atau menghancurkannya secara dinamis, menyimpannya dalam struktur data, meneruskannya sebagai argumen ke fungsi lain, menggunakannya sebagai nilai kembalian, dan seterusnya Anda juga dapat membuat fungsi tingkat tinggi dengan Python. Fungsi tingkat tinggi adalah fungsi yang beroperasi pada fungsi lain dengan mengambilnya sebagai argumen, mengembalikannya, atau keduanya Semua contoh fungsi dalam yang telah Anda lihat sejauh ini adalah fungsi biasa yang kebetulan bersarang di dalam fungsi lain. Kecuali jika Anda perlu menyembunyikan fungsi Anda dari dunia luar, tidak ada alasan khusus bagi mereka untuk bersarang. Anda dapat mendefinisikan fungsi tersebut sebagai fungsi tingkat atas pribadi, dan Anda sebaiknya melakukannya Di bagian ini, Anda akan belajar tentang fungsi penutupan pabrik. Penutupan adalah fungsi yang dibuat secara dinamis yang dikembalikan oleh fungsi lain. Fitur utama mereka adalah bahwa mereka memiliki akses penuh ke variabel dan nama yang ditentukan di namespace lokal tempat penutupan dibuat, meskipun fungsi penutup telah kembali dan selesai dieksekusi Dalam Python, saat Anda mengembalikan objek fungsi bagian dalam, interpreter mengemas fungsi beserta lingkungan atau penutupannya. Objek fungsi menyimpan snapshot dari semua variabel dan nama yang ditentukan dalam cakupannya. Untuk menentukan penutupan, Anda perlu melakukan tiga langkah
Dengan pengetahuan dasar ini, Anda dapat langsung mulai membuat penutupan dan memanfaatkan fitur utamanya. mempertahankan keadaan antara pemanggilan fungsi Hilangkan iklanMempertahankan Negara dalam PenutupanPenutupan menyebabkan fungsi dalam mempertahankan keadaan lingkungannya saat dipanggil. Penutupan bukanlah fungsi bagian dalam itu sendiri tetapi fungsi bagian dalam bersama dengan lingkungan yang melingkupinya. Penutupan menangkap variabel dan nama lokal dalam fungsi yang berisi dan menyimpannya Perhatikan contoh berikut
Inilah yang terjadi dalam fungsi ini
Dari mana _3 mendapatkan nilai 8? . Dalam contoh ini, _3 mendapatkan nilai 8 dari fungsi luar, 2. Inilah yang dilakukan Python saat Anda memanggil 2
Dengan cara ini, saat Anda memanggil instance _3 yang dikembalikan oleh 2, Anda akan melihat bahwa fungsi mengingat nilai 8>>> _Dalam contoh ini, 1 mengingat bahwa 2, dan 3 mengingat bahwa 4. Perhatikan bahwa kedua penutupan mengingat 8 masing-masing di antara panggilanSekarang pertimbangkan contoh lain >>> _Fungsi bagian dalam memeriksa apakah pengguna tertentu memiliki izin yang benar untuk mengakses halaman tertentu. Anda dapat dengan cepat memodifikasi ini untuk menarik pengguna dalam sesi untuk memeriksa apakah mereka memiliki kredensial yang benar untuk mengakses rute tertentu Alih-alih memeriksa apakah pengguna sama dengan 6, Anda dapat meminta database SQL untuk memeriksa izin dan kemudian mengembalikan tampilan yang benar bergantung pada apakah kredensial sudah benarBiasanya Anda akan membuat penutupan yang tidak mengubah status penutupannya, atau penutupan dengan status penutupan statis, seperti yang Anda lihat pada contoh di atas. Namun, Anda juga dapat membuat penutupan yang mengubah status penyertaannya dengan menggunakan objek yang dapat diubah, seperti kamus, set, atau daftar Misalkan Anda perlu menghitung rata-rata kumpulan data. Data datang dalam aliran pengukuran berturut-turut dari parameter yang sedang dianalisis, dan Anda memerlukan fungsi Anda untuk mempertahankan pengukuran sebelumnya di antara panggilan. Dalam hal ini, Anda dapat membuat kode fungsi penutupan pabrik seperti ini >>> _Penutupan yang ditetapkan ke 7 mempertahankan status 8 antara panggilan yang berurutan. Meskipun Anda mendefinisikan 8 di 0, itu masih tersedia di penutupan, sehingga Anda dapat memodifikasinya. Dalam hal ini, _8 berfungsi sebagai semacam keadaan penutup dinamisMemodifikasi Status PenutupanBiasanya, variabel penutupan benar-benar tersembunyi dari dunia luar. Namun, Anda dapat menyediakan fungsi dalam pengambil dan penyetel untuk mereka >>> 0Di sini, 2 mengembalikan penutupan yang mewakili objek 3. Objek ini memiliki fungsi getter dan setter terpasang. Anda dapat menggunakan fungsi tersebut untuk mendapatkan akses baca dan tulis ke variabel 4 dan 5, yang didefinisikan dalam lingkup terlampir dan dikirimkan dengan penutupMeskipun fungsi ini membuat penutupan yang mungkin bekerja lebih cepat daripada kelas yang setara, Anda perlu menyadari bahwa teknik ini tidak menyediakan fitur utama, termasuk pewarisan, properti, deskriptor, dan metode kelas dan statis. Jika Anda ingin mendalami teknik ini lebih dalam, periksa Alat Sederhana untuk Mensimulasikan Kelas Menggunakan Penutupan dan Cakupan Bersarang (Resep Python) Hilangkan iklanMenambahkan Perilaku Dengan Fungsi Dalam. DekoratorDekorator python adalah kasus penggunaan populer dan nyaman lainnya untuk fungsi dalam, terutama untuk penutupan. Dekorator adalah fungsi tingkat tinggi yang menggunakan callable (fungsi, metode, kelas) sebagai argumen dan mengembalikan callable lainnya Anda dapat menggunakan fungsi dekorator untuk menambahkan tanggung jawab ke callable yang sudah ada secara dinamis dan memperluas perilakunya secara transparan tanpa memengaruhi atau memodifikasi callable asli Catatan. Untuk detail lebih lanjut tentang objek yang dapat dipanggil Python, lihat di dokumentasi Python dan gulir ke bawah ke “Jenis yang dapat dipanggil. ” Untuk membuat dekorator, Anda hanya perlu mendefinisikan callable (fungsi, metode, atau kelas) yang menerima objek fungsi sebagai argumen, memprosesnya, dan mengembalikan objek fungsi lain dengan perilaku tambahan. Setelah Anda memiliki fungsi dekorator, Anda dapat menerapkannya ke semua callable. Untuk melakukannya, Anda perlu menggunakan simbol at ( 6) di depan nama dekorator dan kemudian menempatkannya pada barisnya sendiri tepat sebelum callable yang dihias _1Sintaks ini membuat 7 secara otomatis mengambil 8 sebagai argumen dan memprosesnya di dalam tubuhnya. Operasi ini adalah singkatan untuk tugas berikut _2Berikut adalah contoh cara membuat fungsi dekorator untuk menambahkan fungsionalitas baru ke fungsi yang sudah ada >>> 3Dalam hal ini, Anda menggunakan _9 untuk menghias 0. Ini menambahkan fungsionalitas baru ke fungsi yang didekorasi. Sekarang ketika Anda memanggil _0, alih-alih hanya mencetak 8, fungsi Anda mencetak dua pesan baruKasus penggunaan untuk dekorator Python bervariasi. Inilah beberapa di antaranya
Praktik umum untuk men-debug kode Python adalah memasukkan panggilan ke 3 untuk memeriksa nilai variabel, untuk mengonfirmasi bahwa blok kode dijalankan, dan seterusnya. Menambah dan menghapus panggilan ke _3 dapat mengganggu, dan Anda berisiko melupakan beberapa di antaranya. Untuk mencegah situasi ini, Anda dapat menulis dekorator seperti ini>>> 4Contoh ini memberikan 5, yang merupakan dekorator yang menggunakan fungsi sebagai argumen dan mencetak tanda tangannya dengan nilai saat ini dari setiap argumen dan nilai pengembalian yang sesuai. Anda dapat menggunakan dekorator ini untuk men-debug fungsi Anda. Setelah Anda mendapatkan hasil yang diinginkan, Anda dapat menghapus panggilan dekorator 6, dan fungsi Anda akan siap untuk langkah selanjutnyaCatatan. Jika Anda tertarik untuk mempelajari lebih dalam tentang cara kerja 7 dan 8 di Python, lihat Python args dan kwargs. DemistifikasiInilah contoh terakhir cara membuat dekorator. Kali ini, Anda akan menerapkan kembali 2 sebagai fungsi dekorator>>> 5Versi _2 ini menghasilkan hasil yang sama dengan yang Anda dapatkan pada implementasi aslinya. Dalam hal ini, Anda menggunakan penutupan untuk mengingat 8 dan dekorator yang mengembalikan versi modifikasi dari fungsi masukan, 2Di sini, dekorator perlu mengambil argumen ( 8), jadi Anda perlu memiliki dua tingkat fungsi dalam yang bersarang. Tingkat pertama diwakili oleh _3, yang mengambil fungsi yang dihias sebagai argumen. Tingkat kedua diwakili oleh _5, yang mengemas argumen 8 di 7, membuat perhitungan akhir pangkat, dan mengembalikan hasilnyaHilangkan iklanKesimpulanJika Anda mendefinisikan fungsi di dalam fungsi lain, Anda membuat fungsi dalam, juga dikenal sebagai fungsi bersarang. Di Python, fungsi dalam memiliki akses langsung ke variabel dan nama yang Anda tentukan dalam fungsi terlampir. Ini memberikan mekanisme bagi Anda untuk membuat fungsi pembantu, penutupan, dan dekorator Dalam tutorial ini, Anda belajar caranya
Anda sekarang siap memanfaatkan banyak kegunaan fungsi dalam dalam kode Anda sendiri. Jika Anda memiliki pertanyaan atau komentar, pastikan untuk membagikannya di bagian komentar di bawah Tandai sebagai Selesai Tonton Sekarang Tutorial ini memiliki kursus video terkait yang dibuat oleh tim Real Python. Tonton bersama dengan tutorial tertulis untuk memperdalam pemahaman Anda. Fungsi Dalam Python 🐍 Trik Python 💌 Dapatkan Trik Python singkat & manis yang dikirim ke kotak masuk Anda setiap beberapa hari. Tidak pernah ada spam. Berhenti berlangganan kapan saja. Dikuratori oleh tim Real Python Kirimi Saya Trik Python » Tentang Leodanis Pozo Ramos Leodanis adalah seorang insinyur industri yang menyukai Python dan pengembangan perangkat lunak. Dia adalah pengembang Python otodidak dengan pengalaman lebih dari 6 tahun. Dia adalah seorang penulis teknis yang rajin dengan semakin banyak artikel yang diterbitkan di Real Python dan situs lainnya » Lebih lanjut tentang LeodanisSetiap tutorial di Real Python dibuat oleh tim pengembang sehingga memenuhi standar kualitas tinggi kami. Anggota tim yang mengerjakan tutorial ini adalah Aldren Kerekan Geir Arne Jim Joanna Yakub Michael Master Keterampilan Python Dunia Nyata Dengan Akses Tanpa Batas ke Python Nyata Bergabunglah dengan kami dan dapatkan akses ke ribuan tutorial, kursus video langsung, dan komunitas pakar Pythonista Tingkatkan Keterampilan Python Anda » Guru Keterampilan Python Dunia Nyata Bergabunglah dengan kami dan dapatkan akses ke ribuan tutorial, kursus video langsung, dan komunitas ahli Pythonista Tingkatkan Keterampilan Python Anda » Bagaimana menurut anda? Nilai artikel ini Tweet Bagikan Bagikan EmailApa takeaway # 1 Anda atau hal favorit yang Anda pelajari? Kiat Berkomentar. Komentar yang paling berguna adalah yang ditulis dengan tujuan belajar dari atau membantu siswa lain. dan dapatkan jawaban atas pertanyaan umum di portal dukungan kami |