У меня есть набор функций:
def gray(self):
draw = ImageDraw.Draw(self.image)
...
return out
def sepia(self):
draw = ImageDraw.Draw(self.image)
...
return out
def negative(self):
draw = ImageDraw.Draw(self.image)
...
return out
И в каждой из этих функций повторяется конец и начало. Я придерживаюсь DRY (dont repeat yourself).
1)Как можно сократить код?
2) Еще у меня странная проверка:
@bot.message_handler(content_types=['photo'])
def handle_docs_photo(message):
try:
chat_id = message.chat.id
file_info = bot.get_file(message.photo[-1].file_id)
r = bot.download_file(file_info.file_path)
img = handler.ImageHandler(r)
if users[chat_id] == "gray":out = img.gray()
if users[chat_id] == "sepia":out = img.sepia()
if users[chat_id] == "negative":out = img.negative()
if users[chat_id] == "uproar":out = img.uproar()
if users[chat_id] == "mono":out = img.mono()
bot.send_chat_action(chat_id, 'upload_photo')
bot.send_photo(chat_id, out)
del out
except Exception as e:
bot.reply_to(message,e)
Как не повторяться?