class func:
def __init__(self):
self.condition = 'вне контекста'
# функция описывает методы, вызываемые при старте контекстного менеджера
# Возвращаемое значение уходит в переменную var в конструкции 'with ... as var:'
def __enter__(self):
self.condition = 'в контексте'
return self
# Метод вызываемый в завершении конструкции with или при ошибке после нее
def __exit__(self, type, value, traceback):
pass
def __call__(self):
print(f'Выполнение функции {self.condition}')
out_context = func()
out_context()
print('-'*40)
with func() as inside_context:
inside_context()
Выполнение функции вне контекста
----------------------------------------
Выполнение функции в контексте
button_yes=types.InlineKeyboardButton(text='Принят',callback_data=f'yes|{message.chat.id}')
@bot.callback_query_handler(func=lambda call: True)
def callback_inline(call):
answer, user = call.data.split('|')
if answer=='yes':
bot.send_message(user,'Принято')
def get_keyboard(id: str):
buttons: list = [
types.InlineKeyboardButton(text='Редактировать', callback_data=f'edit|{id}'),
types.InlineKeyboardButton(text='Удалить', callback_data=f'del|{id}')
]
keyboard = types.InlineKeyboardMarkup(row_width=2)
keyboard.add(*buttons)
return keyboard
.....
async def list_tasks(message: types.Message):
user_id: int = message.from_user.id
lt: list = get_list_tasks(user_id)
if len(lt) == 0:
await message.answer('Ни одного таска ещё не создано.')
else:
for task in lt:
id = task[-1] # Ну или под каким индексом тут должен скрываться ID записи? Скорректируешь
await message.answer(f'{task[0]}\n\n{task[1]}\n\nid: {task[-1]}', reply_markup=get_keyboard(id))
command, id = call.data.split('|')
bot.register_next_step_handler(msg, phone)
elif message.text == 'VK':
bot.send_message(message.chat.id, 'Держите вашу ссылку: https://vk.com/arizona1phoenix')