tgoop.com/djangolearn_ir/1059
Create:
Last Update:
Last Update:
دکوریتور lru_cache یکی از ابزارهای جالب و کاربردی در پایتون هست که به ما کمک میکنه تا عملکرد برنامههامون رو با ذخیرهسازی نتایج محاسبات قبلی بهبود ببخشیم. این دکوریتور به صورت خودکار نتایج تابع رو برای ورودیهای تکراری ذخیره میکنه و وقتی هم که همون ورودی دوباره فراخوانی بشه، به جای محاسبه دوباره، نتیجه رو از حافظه میگیره.
فرض کن که یه تابع داریم که فاکتوریل یک عدد رو محاسبه میکنه. اگر بخوایم این تابع رو با lru_cache دکوریتور کنیم، به این صورت میشه:
from functools import lru_cache
@lru_cache(maxsize=None) # maxsize میتونه محدودیت حافظه رو تعیین کنه
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n - 1)
print(factorial(5)) # خروجی: 120
print(factorial(5)) # اینجا دیگه محاسبه نمیشه و سریعاً از کش برمیگرده
اینجا وقتی که
factorial(5) رو برای بار اول صدا میزنیم، تمام مراحل محاسبه انجام میشه و نتیجه 120 برمیگرده. اما وقتی دوباره همین تابع رو با همون ورودی صدا بزنیم، دیگه نیازی به محاسبه نیست و نتیجه از کش برمیگرده که خیلی سریعتره! پس با استفاده از
lru_cache میتونیم سرعت برنامههامون رو بالا ببریم و کارایی رو بهبود بدیم.BY جنگولرن
Share with your friend now:
tgoop.com/djangolearn_ir/1059
