Get started learning Python with DataCamp's free Intro to Python tutorial. Learn Data Science by completing interactive coding challenges and watching videos by expert instructors. Start Now!
This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join 11 million other learners and get started learning Python for data science today!
Good news! You can save 25% off your Datacamp annual subscription with the code LEARNPYTHON23ALE25 - Click here to redeem your discount
Dekorator
Decorator memungkinkan Anda untuk melakukan modifikasi sederhana pada objek yang dapat dipanggil seperti fungsi, metode, atau kelas. Kita akan membahas fungsi untuk tutorial ini. Sintaksnya
Setara dengan:
Seperti yang mungkin Anda lihat, sebuah decorator hanyalah fungsi lain yang menerima fungsi dan mengembalikannya. Misalnya Anda bisa melakukan ini:
Ini akan membuat fungsi mengulang dua kali.
Anda juga bisa membuatnya mengubah output
mengubah input
dan melakukan pengecekan.
Misalkan Anda ingin mengalikan output dengan jumlah variabel tertentu. Anda bisa mendefinisikan decorator dan menggunakannya sebagai berikut:
Anda bisa melakukan apa saja yang Anda inginkan dengan fungsi lama, bahkan mengabaikannya sepenuhnya! Decorator tingkat lanjut juga dapat memanipulasi string dokumentasi dan jumlah argumen. Untuk beberapa decorator keren, kunjungi http://wiki.python.org/moin/PythonDecoratorLibrary.
Exercise
Buatlah pabrik decorator yang mengembalikan decorator yang mendekorasi fungsi dengan satu argumen. Pabrik tersebut harus menerima satu argumen, jenis, dan kemudian mengembalikan decorator yang membuat fungsi harus memeriksa apakah input adalah tipe yang benar. Jika salah, seharusnya mencetak("Bad Type") (Pada kenyataannya, seharusnya menimbulkan kesalahan, tetapi penanganan kesalahan tidak dibahas dalam tutorial ini). Melihat kode tutorial dan output yang diharapkan mungkin dapat membantu jika Anda bingung (Saya pun akan bingung). Menggunakan isinstance(object, type_of_object) atau type(object) mungkin membantu.
This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join over a million other learners and get started learning Python for data science today!
