Size: a a a

2020 May 24

p

paulwinex in pro.python
может имеется в виду чтобы она рассчитала один раз результат а потом просто возвращала готовый без рассчета?
источник

p

paulwinex in pro.python
или именно вызов как таковой повесить за if
источник

p

paulwinex in pro.python
вот например простой декоратор

def run_once(f):
   def wrapper(*args, **kwargs):
       if getattr(f, 'executed', False):
           return
       f.executed = True
       return f(*args, **kwargs)
   return wrapper

@run_once
def func():
   print('EXECUTE!!!')

функция func() может быть вызвана сколь угодно раз но сработает 1 раз
источник

p

paulwinex in pro.python
from functools import lru_cache

@lru_cache(maxsize=10)
def func():
   print('EXECUTE')
   return 123

А вот так кеширование делать. Расчёт будет только 1 раз, потом будет ретурнить готовое значение всегда
источник

p

paulwinex in pro.python
гдето у меня пост был про это, могу скинуть если надо
источник

l

lyagushka in pro.python
Спасибо
источник

l

lyagushka in pro.python
paulwinex
гдето у меня пост был про это, могу скинуть если надо
Если не сложно, то скинь, пожалуйста
источник

p

paulwinex in pro.python
удОляю ссылку если посмотрел
источник

l

lyagushka in pro.python
Сможешь в личку?
источник

p

paulwinex in pro.python
ок
источник

АП

Александр Попов... in pro.python
lyagushka
Может кто-нибудь знает или разбирается в Python`e, то такой вопрос(он глупый), как сделать так, чтобы функция сработала только 1 раз?
Пробовал искать в интернете, ютубе и т.д.,
но, к сожелению, не нашёл
Так погоди, а вариант вызвать ее 1 раз не рассматривается?
источник

АП

Александр Попов... in pro.python
paulwinex
from functools import lru_cache

@lru_cache(maxsize=10)
def func():
   print('EXECUTE')
   return 123

А вот так кеширование делать. Расчёт будет только 1 раз, потом будет ретурнить готовое значение всегда
Только 1 раз будет если у нас функция не принимает аргументов или мы туда передаем всегда одинаковые аргументы
источник

p

paulwinex in pro.python
Александр Попов
Только 1 раз будет если у нас функция не принимает аргументов или мы туда передаем всегда одинаковые аргументы
так и есть. просто точной задачи не озвучено, я предложил одиночные вызовы при одинаковых результатах, то есть кеш простой
источник

l

lyagushka in pro.python
Переслано от lyagushka
Создаю бота для телеграма.
Должен по команде /start написать "вот что могу:" и клавиатура, нажимай на кнопку на клавиатуре меняется на другую клавиатуру и пишется текст "выберите страну", и на клавиатуре 3 кнопки. По нажатию на любую кнопку бот высылает текст "выберите страну", в чем ошибка не понимаю
источник

l

lyagushka in pro.python
Могу чуть позже выслать код, сейчас не дома
источник

l

lyagushka in pro.python
Александр Попов
Так погоди, а вариант вызвать ее 1 раз не рассматривается?
Прикол в том, что я её даже не вызываю, она работает даже без вызова.
источник

l

lyagushka in pro.python
А если сделать вызов, то не работает
источник

АП

Александр Попов... in pro.python
lyagushka
Прикол в том, что я её даже не вызываю, она работает даже без вызова.
А код то будет? Или нам и дальше на картах гадать?
источник

l

lyagushka in pro.python
lyagushka
Могу чуть позже выслать код, сейчас не дома
.
источник

УВ

Учусь Вебу in pro.python
источник