Как можно сократить этот код python?
Как можно сократить этот код, чтобы его можно было использовать еще раз?
Мб его как-то в отдельный класс запихать в отдельном .py файле? Потому что нужно будет делать что-то типа рассылки, а переписывать 100 раз одну и ту же функцию не хочется.
def main():
base_url = "https://api.telegram.org/bot***/sendPoll"
parameters = {
"chat_id": "-829228048",
"question" : 'Как ты себя чувствуешь?',
"options" : json.dumps(["Хорошо", "Не очень"]),
"is_anonymous": False,
}
resp = requests.get(base_url, data=parameters)
print(resp.text)
scheduler1 = schedule.Scheduler()
scheduler1.every(5).seconds.do(main)
Ответы (3 шт):
Автор решения: Pro Task
→ Ссылка
Можно parametrs кинуть в отдельный файл (config, например) и оттуда импортировать
Автор решения: Mango
→ Ссылка
в класс запихнуть и потом брать из класса
class param:
parameters = {
"chat_id": "-829228048",
"question" : 'Как ты себя чувствуешь?',
"options" : json.dumps(["Хорошо", "Не очень"]),
"is_anonymous": False,
}
def main():
base_url = "https://api.telegram.org/bot***/sendPoll"
parameters = param.parameters
Автор решения: vadim vaduxa
→ Ссылка
Нужно правильно пользоваться возможностью функций, а именно использовать аргументы
def main(base_url="https://api.telegram.org/bot***/sendPoll", chat_id="-829228048", question='Как ты себя чувствуешь?', options=("Хорошо", "Не очень"), is_anonymous=False):
resp = requests.get(base_url, data=dict(chat_id=chat_id, question=question, options=json.dumps(options), is_anonymous=is_anonymous))
print(resp.text)
scheduler1 = schedule.Scheduler()
scheduler1.every(5).seconds.do(main)
scheduler1.every(5).seconds.do(main, base_url="https://api.telegram.org/bot123/sendPoll")
scheduler1.every(5).seconds.do(main, chat_id="-123", is_anonymous=True)