Как передать класс в конструктор в Python
Пишу телеграмм-бота со встроенным календарем (из библиотеки telegram_bot_calendar)
Столкнулся с проблемой, что календарь на англ языке, однако нагуглил, как его перевести.
from telegram_bot_calendar import DetailedTelegramCalendar, LSTEP
your_translation_months = list('январь, февраль, март, апрель, май, июнь, июль, август, сентябрь, октябрь, ноябрь, декабрь')
your_translation_days_of_week = list('ПонедельникВторникСредаЧетвергПятницаСубботаВоскресенье')
class MyTranslationCalendar(DetailedTelegramCalendar):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.days_of_week['yourtransl'] = your_translation_days_of_week
self.months['yourtransl'] = your_translation_months
Но не могу додумать, как добавить этот класс в конструктор:
@bot.message_handler(commands=['calendar'])
def start(message):
calendar, step = DetailedTelegramCalendar().build()
bot.send_message(message.chat.id,
f"Select {LSTEP[step]}",
reply_markup=calendar)
@bot.callback_query_handler(func=DetailedTelegramCalendar.func())
def cal(call):
result, key, step = DetailedTelegramCalendar().process(call.data)
if not result and key:
bot.edit_message_text(f"Select {LSTEP[step]}",
call.message.chat.id,
call.message.message_id,
reply_markup=key)
elif result:
bot.edit_message_text(f"You selected {result}",
call.message.chat.id,
call.message.message_id)
Не судите за глупые вопросы, изучая Python, взялся за небольшой проект, дабы прокачать скилл на практике!
Всем спасибо!
Ответы (2 шт):
Автор решения: CrazyElf
→ Ссылка
Если я правильно понял вопрос, то просто заменяете использование старого класса на новый у себя везде, и всё. Т.е. старый код:
@bot.message_handler(commands=['calendar'])
def start(message):
calendar, step = DetailedTelegramCalendar().build()
...
Заменить на:
@bot.message_handler(commands=['calendar'])
def start(message):
calendar, step = MyTranslationCalendar().build()
^^^^^^^^^^^^^^^^^^^^^
...
И так везде в коде бота.