tele.me: первая страница Telegram сообщества

Запись чата

tfhx8
14:28:5

есть в классе некий метод, который делает свое дело и возвращает строку. Сейчас этот метод в коде вызывается 1 раз, сейчас нужно сделать, чтобы этот метод можно было вызывать n раз, но только, чтобы он не делал те же самые инструкции внутри у себя, а уже возвращал готовый результат после первого вызова, можете пример накидать кто знает?

Anonymouse присоединился к группе
Artöm Bakri Al-Sarmini
14:30:24

cache = None
def f():
    if  cache is None:
        cache = do_work()
    return cache`

lru_cache?

tfhx8
14:32:0

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

print добавь.

красивое решение))

он работает в случае если результат функции вычисляется из переданных аргументов. то есть если это у тебя метод класса и ты просто хочешь закешировать результат - см. оратора выше, с поправкой на то что за глобальные переменные ему будут водить ссаной тряпкой по лицу.

this is not mrklf
14:33:48

RecursionError: maximum recursion depth exceeded

🎈Denis
14:34:16

Вот жеж этот Димсан

DimSan
14:34:24

не факт, что в мозгу встроено) может будет лопатить пока не сгорит)

Anonymouse присоединился к группе
Artöm Bakri Al-Sarmini
14:34:39

Если метод класса, то полем можно сделать

не совсем понимаю. Можешь пример п ривести когда будет работать лру а когда нет?

шучу. в случае с кешированием результата функции использование глобальной переменной вполне допустимо.

только тыglobal cacheзабыл

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

тогда вероятно ты делаешь что-то не так.

просто lru с виду выглядит проще. Только не понятно, в каких именно случаях его можно использовать, а в каких он все может испорить

Tishka17
14:37:54

Только лру работает по другому

Tishka17
14:38:10

Lru имеет конкретную расшифровку

tfhx8
14:39:7

в общем в моем методе нет аргументов, все берется внутри из self

подойдет?

нет

Tishka17
14:40:6

Оу, он будет по self кэшировать. Не надо так

тогда может внутри моего метода, сделать подметод, куда аргументом передавать моюself.name(тут строка) и закешировать?

Vladimir
14:42:14

Мемоизация

Anonymouse присоединился к группе

так сработает?

Anonymouse присоединился к группе

нет

Tishka17
14:52:15

чобля

Tishka17
14:52:37

что это за говно вообще?

tfhx8
15:0:45

😂

🔐{% ɹoƃǝʎ %}
15:6:36
😬
Anonymouse присоединился к группе
Anonymouse присоединился к группе
Виктория Котенко
15:28:7

Ребята всем привет, почему у меня не получаеться отправить сообщения, хотя если пробую другую функцию, отправка сообщения на стену, всё работает

Ребята всем привет, почему у меня не получаеться отправить сообщения,  хотя если пробую другую функцию, отправка  с...
Виктория Котенко
15:28:17

кто подскажет

Victor
15:30:30

Не задан параметрrandom_id, необходимый для новых версий VK API.

Victor
15:32:4

from vk_api.utils import get_random_idИ добавить в вызовmessages.sendаргументrandom_idсо значением вызова этой функции.

akaWolf
15:33:8

а чего параметр не required?

Anonymouse присоединился к группе
Виктория Котенко
15:43:12

Не чего не получаеться

Не чего не получаеться

школота сидит какая то, с такими дикими ошибками писать 🙂

А ты дефис пропустил!

🎈Denis
15:46:0

Я тибя умаляю, ни нерничай

Виктория Котенко
15:47:24

зачем так оскорбялть...почему в россии такая привычка. Я живу в деревне мне уже 23 года, я хочу научиться программировать - мне это по душе, а за 10 тысяч работать хер знает кем, думаю не кому не хочеться

🎈Denis
15:48:59

А это правда, что в России хотят принять закон, что девушки, которые до 23 не родили, пойдут в армию?