حفظ نتائج الدالة بإستخدام lru_cache
ال lru_cache بتحتفظ بنتائج إستدعاءات سابقة علشان نفس المعاملات متحتاجش تعيد الحساب
تجنب تكرار الحساب
رسالة الحساب بتظهر مرة واحدة رغم إستدعاء الدالة مرتين
from functools import lru_cache
@lru_cache(maxsize=32)
def square(number):
print("Calculating")
return number * number
print(square(4))
print(square(4))النتيجة
Calculating
16
16مسح النتائج المحفوظة
ال cache_clear بتمسح الكاش علشان الإستدعاء التالي يحسب النتيجة من جديد
from functools import lru_cache
@lru_cache(maxsize=32)
def double(number):
return number * 2
double(3)
double(3)
print(double.cache_info().hits)
double.cache_clear()
print(double.cache_info().currsize)النتيجة
1
0ملحوظة
المعاملات لازم تكون قابلة للتجزئة وإستخدمها مع دوال نتيجتها تعتمد على المعاملات وتجنب النتائج المتغيرة زي الوقت الحالي