🏗️ Decorator

👀 Hızlı Bakış

  • 🍱 Metotları başka bir metotları tetikleyerek kullanmayı sağlar

  • 💠 Fonksiyonların üstlerinde kullanılır

  • 🏷️ Etiketleme (annotations) olarak da bilinir

def background(func):
def inner(*args, **kwargs):
threading.Thread(target=func, args=args, kwargs=kwargs).start()
return inner
@background
def test(val1, val2):
for i in range(val1, val2):
print(i)
if __name__ == "__main__":
test(10, 20)
test(20, 30)
# 10 20 21 22 23 24 25 26 27 28 11 12 13 29 14 15 16 17 18 19

💎 Parameter ile Kullanım

def delayed(duration):
def background(func):
def inner(*args, **kwargs):
threading.Timer(duration, func, args, kwargs).start()
return inner
return background
@delayed(1)
def test(val1, val2):
for i in range(val1, val2):
print(i)
if __name__ == "__main__":
test(10, 20)
test(20, 30)
# 10 11 12 13 14 20 21 22 15 16 17 18 19 23 24 25 26 27 28 29

‍🧙‍♂ Detaylı bilgi için 👨‍💻 Decorators with Parameters alanına bakabilirsin.

🔗 Faydalı Bağlantılar