Warning: preg_grep(): Compilation failed: quantifier does not follow a repeatable item at offset 134 in /var/www/tg-me/post.php on line 75
Библиотека питониста | Python, Django, Flask | Telegram Webview: pyproglib/6620 -
Telegram Group & Telegram Channel
🔖 Это база: секрет Python, который ускорит ваш код в миллионы раз

lru_cache — декоратор для кеширования результатов функций. Повторные вызовы с теми же аргументами не вычисляются заново — это ускоряет код в разы.

Пример:
from functools import lru_cache

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

print(fibonacci(30)) # Выводит: 832040
print(fibonacci.cache_info()) # Статистика кеша


С lru_cache результаты сохраняются в кеше и повторно используются, что ускоряет выполнение.

🚩 Возможные применения:
— Рекурсивные функции
— Повторяющиеся запросы к базе данных
— Повторные API-запросы

Пример:
import requests
from functools import lru_cache

@lru_cache(maxsize=32)
def get_weather(city):
response = requests.get(f"https://api.weather.com/data?city={city}")
return response.json()

print(get_weather("New York")) # Первый вызов
print(get_weather("New York")) # Кешированный ответ


🚩 Как работает lru_cache

lru_cache хранит результаты в словаре и отслеживает порядок использования через двусвязный список. Когда кеш переполнен, удаляется наименее недавно использованный элемент.

Настройка размера кеша

Параметр maxsize позволяет регулировать размер кеша:
— None — неограниченный размер кеша
— Число — ограничение на количество записей в кеше

Пример:
@lru_cache(maxsize=256)
def expensive_computation(x, y):
return x * x + y * y


Обработка изменяемых аргументов

Все аргументы функции должны быть хешируемыми. Если функция использует изменяемые типы, их нужно преобразовать в неизменяемые.

Пример:
@lru_cache(maxsize=32)
def process_data(data_tuple):
return sum(data_tuple)

data = [1, 2, 3, 4]
print(process_data(tuple(data))) # Преобразуем список в кортеж


Очистка кеша

Для этого можно использовать метод cache_clear().

Пример:
expensive_computation.cache_clear()


🚩 Преимущества:
— Ускорение работы функций
— Легкость внедрения с @lru_cache
— Поддерживает статистику

🚩 Недостатки:
— Возможен рост потребления памяти при maxsize=None
— Поддерживаются только хешируемые аргументы

Библиотека питониста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM



tg-me.com/pyproglib/6620
Create:
Last Update:

🔖 Это база: секрет Python, который ускорит ваш код в миллионы раз

lru_cache — декоратор для кеширования результатов функций. Повторные вызовы с теми же аргументами не вычисляются заново — это ускоряет код в разы.

Пример:

from functools import lru_cache

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

print(fibonacci(30)) # Выводит: 832040
print(fibonacci.cache_info()) # Статистика кеша


С lru_cache результаты сохраняются в кеше и повторно используются, что ускоряет выполнение.

🚩 Возможные применения:
— Рекурсивные функции
— Повторяющиеся запросы к базе данных
— Повторные API-запросы

Пример:
import requests
from functools import lru_cache

@lru_cache(maxsize=32)
def get_weather(city):
response = requests.get(f"https://api.weather.com/data?city={city}")
return response.json()

print(get_weather("New York")) # Первый вызов
print(get_weather("New York")) # Кешированный ответ


🚩 Как работает lru_cache

lru_cache хранит результаты в словаре и отслеживает порядок использования через двусвязный список. Когда кеш переполнен, удаляется наименее недавно использованный элемент.

Настройка размера кеша

Параметр maxsize позволяет регулировать размер кеша:
— None — неограниченный размер кеша
— Число — ограничение на количество записей в кеше

Пример:
@lru_cache(maxsize=256)
def expensive_computation(x, y):
return x * x + y * y


Обработка изменяемых аргументов

Все аргументы функции должны быть хешируемыми. Если функция использует изменяемые типы, их нужно преобразовать в неизменяемые.

Пример:
@lru_cache(maxsize=32)
def process_data(data_tuple):
return sum(data_tuple)

data = [1, 2, 3, 4]
print(process_data(tuple(data))) # Преобразуем список в кортеж


Очистка кеша

Для этого можно использовать метод cache_clear().

Пример:
expensive_computation.cache_clear()


🚩 Преимущества:
— Ускорение работы функций
— Легкость внедрения с @lru_cache
— Поддерживает статистику

🚩 Недостатки:
— Возможен рост потребления памяти при maxsize=None
— Поддерживаются только хешируемые аргументы

Библиотека питониста #буст

BY Библиотека питониста | Python, Django, Flask




Share with your friend now:
tg-me.com/pyproglib/6620

View MORE
Open in Telegram


Библиотека питониста | Python Django Flask Telegram | DID YOU KNOW?

Date: |

Can I mute a Telegram group?

In recent times, Telegram has gained a lot of popularity because of the controversy over WhatsApp’s new privacy policy. In January 2021, Telegram was the most downloaded app worldwide and crossed 500 million monthly active users. And with so many active users on the app, people might get messages in bulk from a group or a channel that can be a little irritating. So to get rid of the same, you can mute groups, chats, and channels on Telegram just like WhatsApp. You can mute notifications for one hour, eight hours, or two days, or you can disable notifications forever.

Pinterest (PINS) Stock Sinks As Market Gains

Pinterest (PINS) closed at $71.75 in the latest trading session, marking a -0.18% move from the prior day. This change lagged the S&P 500's daily gain of 0.1%. Meanwhile, the Dow gained 0.9%, and the Nasdaq, a tech-heavy index, lost 0.59%. Heading into today, shares of the digital pinboard and shopping tool company had lost 17.41% over the past month, lagging the Computer and Technology sector's loss of 5.38% and the S&P 500's gain of 0.71% in that time. Investors will be hoping for strength from PINS as it approaches its next earnings release. The company is expected to report EPS of $0.07, up 170% from the prior-year quarter. Our most recent consensus estimate is calling for quarterly revenue of $467.87 million, up 72.05% from the year-ago period.

Библиотека питониста | Python Django Flask from us


Telegram Библиотека питониста | Python, Django, Flask
FROM USA