گاهی وقتا نمیخوای کد یه تابع رو تغییر بدی،
ولی میخوای قبل یا بعد از اجرای اون تابع کاری انجام بدی، مثلاً زمان اجراش رو بسنجی، لاگ بگیری یا مجوز کاربر رو چک کنی.
اینجاست که Wrapper وارد میشه به این معنی که یه تابع که میاد یه تابع دیگه رو “میپیچه” و یه رفتار جدید بهش اضافه میکنه.
def wrapper(func):
def inner(*args, **kwargs):
print("🔹 Before execution")
result = func(*args, **kwargs)
print("✅ After execution")
return result
return inner
@wrapper
def say_hello(name):
print(f"Hello {name}!")
say_hello("Pythonista")
خروجی:
🔹 Before execution
Hello Pythonista!
✅ After execution> درواقع Wrapper یه روکش برای تابع اصلیه که بدون تغییر در کد اصلی، یه رفتار جدید بهش اضافه میکنه.
@TryCodeBox
