Телеграмм бот отправляет одну и ту же фотографию через random.choice, хотя в списке, много фото. Как это пофиксить?

Всем привет, решил добавить в бота функцию отправки рандомного сообщения, но почему-то при запуске бота и выполнении команды, приходит одна и та же фотография. Погуглив, нашёл код, который всё фиксит, но не помогло (библиотеки установлены). При перезапуске бота, он выбирает другую фотку и отправляет только её. Подскажите, что можно решить с этим:

picts = ['1', '2', '3', '4', '5', '6', '7', '8']
tak = random.choice(picts)
random_message = lambda: random.choice(picts)

@bot.message_handler(content_types=['text'])
def send_text(message):
    if message.text.lower() == 'давай':
        bot.send_photo(message.chat.id, tak)

Ответы (1 шт):

Автор решения: Klim

Вам нужно вызывать выбор рандома внутри функции. Так как сейчас у вас единожды выбирается рандом и дальше одно и тоже возвращает.

Псевдокод для запуска из консоли.

import random

picts = ['1', '2', '3', '4', '5', '6', '7', '8']

def send_text(message):
    if message == 'давай':
        tak = random.choice(picts)
        print(tak)


send_text('давай')
send_text('давай')
send_text('давай')

>>> 3
>>> 2
>>> 7
→ Ссылка