بايثون العرب
10.5K subscribers
866 photos
183 videos
768 links
Download Telegram
⚡️ تسريع الدوال باستخدام functools.lru_cache في بايثون

هل تعاني من بطء بعض الدوال في برنامجك؟ استخدم `lru_cache` من مكتبة `functools` لتخزين نتائج استدعاءات الدوال المتكررة وتسريع الأداء بشكل ملحوظ.

from functools import lru_cache

@lru_cache(maxsize=None)
def fibonacci(n):
if n < 2:
return n
return fibonacci(n-1) + fibonacci(n-2)

print(fibonacci(30))
print(fibonacci(30)) # This call will be much faster due to caching


المُزخرف `@lru_cache(maxsize=None)` يقوم بتخزين نتائج استدعاء الدالة `fibonacci` بناءً على وسائطها. عند استدعاء الدالة مرة أخرى بنفس الوسائط، يتم إرجاع النتيجة المخزنة بدلاً من إعادة حسابها، مما يحسن الأداء بشكل كبير للدوال التي تُستدعى بنفس المدخلات عدة مرات.

['#بايثون', '#برمجة', '#functools', '#lru_cache', '#تحسين_الأداء', '#Python', '#Programming', '#Performance']