Saatnya berbicara tentang dekorator.
Istilah kunci lain dalam Python, dan kami sebenarnya pernah melihat dekorator sebelumnya.
Apakah Anda ingat ketika kita sedang membangun kelas, saya mengajari Anda bahwa ada metode kelas dan metode statis
dan saya berkata, hei, jangan khawatir tentang ini.
Kita akan membicarakan ini nanti.
Nah, sekarang tampilan dekoratornya seperti ini.
Mereka memiliki tanda dan kemudian semacam nama yang mengikutinya.
Tetapi agar kita dapat sepenuhnya memahami apa itu dekorator, kita harus membicarakan fungsi dalam Python dan mengapa
mereka begitu kuat.
Ini adalah hal yang menarik tentang Python dalam fungsi Python yang kami sebut warga kelas satu.
Artinya, mereka dapat diedarkan seperti variabel.
Mereka bisa menjadi argumen di dalam suatu fungsi.
Mereka bertindak seperti, yah, variabel.
Mari saya tunjukkan, jika saya membuat fungsi halo, yang sejujurnya sama sekali tidak berguna karena yang
dilakukannya hanyalah menyapa.
Jika saya melakukan ini.
Ingat, saya mengatakan fungsi hanyalah variabel dalam Python.
Sekali lagi, sesuatu yang tidak selalu terjadi pada semua bahasa pemrograman.
Jadi jika saya mau, saya bisa mengatakan Grete sama dengan halo.
Sehingga jika saya mencetak Grete.
Dan saya menjalankan ini.
Saya mendapatkan halo, bagaimana jika saya hanya melewati halo seperti ini, jika saya menjalankan ini?
Yah, saya mendapatkan lokasi fungsi di memori, jadi saya harus menggunakan grid seperti ini dan menjalankannya dengan benar.
Kita harus memanggil fungsi hello.
Oke, bagaimana jika kita melakukan ini?
Bagaimana jika saya katakan hapus?
Halo, keyboard dan python yang menghapus fungsi itu.
Apa yang kamu pikir akan terjadi?
Mari kita lihat apakah saya menjalankan ini.
Hmm, apakah itu yang Anda harapkan?
Apakah Anda mengharapkan keserakahan untuk tetap bekerja?
Hal yang menarik tentang Python adalah saya membuat halo dan ini sekarang dibuat di memori, ketika kita sampai
ke baris empat, saya berkata, hei, salam akan menunjuk ke halo.
Jadi halo masih bisa dipanggil di sini.
Saya masih bisa menyapa karena halo adalah nama fungsi yang menunjuk ke lokasi tersebut di memori.
Tetapi ketika saya menghapus hello, yang dilakukannya hanyalah mengatakan, hei, saya akan menghapus fungsi ini, nama ini merujuk ke fungsi
ini yang ada di memori.
Namun, karena menyapa seluruh variabel lain masih menunjuk ke fungsi ini.
Saya akan menghapus kata halo, jadi jika saya mengucapkan halo seperti ini.
Aku akan mendapatkan nama udara halo tidak didefinisikan, namun.
Grid masih menunjuk di memori ke lokasi ini, jadi Python cukup pintar untuk mengatakan, hei, Anda menyuruh saya untuk
menghapus halo, saya akan menghapus nama halo, tapi saya tidak akan menghapus fungsinya
karena keserakahan masih menunjuk ke sana.
Jadi fungsi dalam Python bertindak seperti variabel yang dilakukan warga kelas satu.
Kami juga dapat melewati fungsi.
Sekitar dalam argumen, benar, jika saya menyapa dan kemudian halo ini menerima fungsi lain yang
memanggil, katakanlah.
Fungsi seperti ini.
Nah, saya bisa membuat fungsi grid, katakanlah define grid.
Dan fungsi ini hanya akan mencetak.
Masih disini.
Sekarang, di sini, jika saya memanggil halo.
Dengan.
salam.
Atau agar kita jelas, katakan saja sama dengan halo salam, dan jika saya mencetak a, apa yang akan terjadi?
Itu masih berfungsi karena yang terjadi adalah saya katakan, hei, panggil fungsi halo, OK, saya
panggil fungsi halo dengan argumen.
Besar.
Jadi kita pergi ke sini dan kita berkata, hei, jalankan fungsi dan fungsi apa yang ingin kita panggil fungsi ini.
Benar, karena kami memiliki tanda kurung ini.
Jadi kita melompat ke fungsi apa yang dalam kasus kita adalah keserakahan.
Jadi kami pergi ke sini dan berkata, hei, cetak saja ini, kami tidak perlu memanggilnya di sini karena fungsi
Halo memanggilnya untuk kami.
Jadi mengapa saya hanya mengajari Anda semua itu?
Apa hubungannya dengan dekorator dekorator hanya mungkin karena fitur ini, kemampuan fungsi
ini untuk bertindak seperti variabel, bertindak seperti warga negara kelas satu dan python.
Dan ketika kita mulai belajar tentang dekorator di balik kap mesin, mereka menggunakan kekuatan fungsi ini.
Sesekali video yang akan datang, kita akan berbicara tentang cara membuat video kita
sendiri, apa artinya dan memperluas ide dekorator ini.
Tapi inilah bentuk singkat dari apa yang dilakukan dekorator, dekorator meningkatkan fungsi kita jika kita memiliki, katakanlah halo
fungsi di sini.
Dengan menambahkan semacam dekorator seperti ini, kita dapat meningkatkan fungsi kita dan menambahkan fungsionalitas tambahan ke dalamnya.
Ini membuat juru bahasa Python tahu bahwa saya ingin fungsi halo ini memiliki beberapa fitur tambahan, tetapi mari kita jelajahi topik
ini sedikit lebih banyak di video berikutnya.