Gunakan dekorator Python
Dekorator adalah alat canggih yang dapat digunakan untuk menambahkan fungsionalitas ke fungsi dan kelas yang ada tanpa mengubah kodenya. Mereka dapat digunakan untuk tugas-tugas seperti logging, caching, dan validasi, dan dapat membantu menjaga kode Anda tetap teratur dan terpelihara.
Jadi.. apa itu dekorator?
Dekorator adalah tipe khusus dari fungsi yang menggunakan fungsi lain sebagai argumennya dan mengembalikan fungsi baru. Fungsi baru biasanya merupakan versi modifikasi dari fungsi asli dan sering digunakan untuk menambah fungsionalitas tambahan.
Bagaimana cara menggunakan adalah?
Dekorator diterapkan pada fungsi atau kelas dengan menempatkan simbol “@” diikuti dengan nama fungsi dekorator sebelum definisi fungsi atau kelas.
Berikut adalah contoh dekorator sederhana yang menambahkan fungsionalitas logging ke suatu fungsi:
def log_decorator(func):
def wrapper(*args, **kwargs):
print("Calling function:", func.__name__)
result = func(*args, **kwargs)
print("Function returned:", result)
return result
return wrapper
@log_decorator
def my_function(x, y):
return x + y
my_function(1, 2)
Output dari kode ini adalah:
Calling function: my_function
Function returned: 3
Dekorator dosis bisa mendapatkan nilai?
Ya! Anda juga dapat memberikan argumen kepada dekorator dengan sangat mudah
def repeat(num):
def repeat_decorator(func):
def wrapper(*args, **kwargs):
for i in range(num):
result = func(*args, **kwargs)
return result
return wrapper
return repeat_decorator
@repeat(num=3)
def my_function(x):
return x * x
print(my_function(3))
Ingat?
dekorator adalah tipe khusus dari fungsi yang menggunakan fungsi lain sebagai argumen dan mengembalikan fungsi baru, biasanya versi modifikasi dari fungsi asli, yang digunakan untuk menambah fungsionalitas. Mereka diterapkan ke fungsi atau kelas dengan menempatkan simbol "@" diikuti dengan nama fungsi dekorator sebelum definisi fungsi atau kelas. Mereka juga dapat mengambil argumen untuk lebih menyesuaikan perilaku dekorator.
Semoga sukses Shilo

![Apa itu Linked List? [Bagian 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































