@botoid

Страница 1335 из 4042
b0g3r
28.08.2017
13:22:05
ты добавляешь роуты

b0g3r
28.08.2017
13:22:27
Это monkey patching. Создём instance, начинаем его патчить.
и не во время выполнения программы, а во время импорта файла

Stanislav
28.08.2017
13:22:32
Что значит?
Что что значит?

Google
b0g3r
28.08.2017
13:22:35
то есть по всем фронтам это не монкей-патчинг

Mad
28.08.2017
13:22:45
Лол.

b0g3r
28.08.2017
13:22:45
обычный регистрирующий декоратор

Stanislav
28.08.2017
13:22:49
Пример манкипатчинга можно глянуть в гевенте например, вот это есть манкипатчинг

Mad
28.08.2017
13:22:52
Импорт файла это уже выполнение программы.

Валя
28.08.2017
13:22:54
за тех задание спс

b0g3r
28.08.2017
13:23:02
Mad
28.08.2017
13:23:08
Гевент это тоже monkey patching,кто же спорит.

Но не потому что там есть фунция monkey.patch_all

Stanislav
28.08.2017
13:23:35
Лол.
А если ты еблан хамящий, не понимающий в чем смысл патерна декоратор, то кто тебе виноват?

Mad
28.08.2017
13:23:38
А потому что манкипатчинг )

b0g3r
28.08.2017
13:23:42
окей, instnace.a = 2 - это монкей-патчинг?

я вот в коде довольно частенько аттрибуты объектов изменяю :)

Google
Stanislav
28.08.2017
13:24:05
окей, instnace.a = 2 - это монкей-патчинг?
ЕСТЕСТВЕННО, ЭТО ЖЕ УЖЕ ВЫПОЛНЕНИЕ ПРОГРАММЫ

Mad
28.08.2017
13:24:34
окей, instnace.a = 2 - это монкей-патчинг?
Нет, я не называю это манкипатчингом

Mad
28.08.2017
13:25:00
Ну я так хочу.

b0g3r
28.08.2017
13:25:06
ну хоти :)

Mad
28.08.2017
13:25:09
Я называю манкипатчингом изменение функци объекта.

b0g3r
28.08.2017
13:25:17
ага

а где там изменение функции объекта?

message_handler просто добавляет в список эту функцию)

когда приходит новое сообщение - достает все хэндлеры из списка и передает первому подходящему

Stanislav
28.08.2017
13:25:47
b0g3r
28.08.2017
13:26:00
https://github.com/eternnoir/pyTelegramBotAPI/blob/master/telebot/__init__.py#L1065

ну телеграм!(

Stanislav
28.08.2017
13:26:11
Почитай про декораторы в гугле и не задавай глупые вопросы. Спасибо

Mad
28.08.2017
13:26:23
Я почитал, ещё 10 лет назад.

b0g3r
28.08.2017
13:26:29
не задавать глупые вопросы - сколько угодно, просто безаппеляционно упираться рогом на том месте, где не сечешь - странная хуйня

ну так, окей, где монкей-патчинг функции объекта?

в регистрирующем декораторе

Mad
28.08.2017
13:26:54
Та ща подожжите, дайте подумать.

Google
Mad
28.08.2017
13:28:15
У нас спор о семантике. Я лично называл и будут называть подобные вещи манкипатчингом. И вообще я не любитель декораторов, я их вообще не использую.

b0g3r
28.08.2017
13:28:36
нет, ты называешь монкей-патчингом другое

Mad
28.08.2017
13:28:40
Для меня декоторы не python way

В данном случае это изменение фунционала instance'а

b0g3r
28.08.2017
13:28:59
ты говоришь - монкей-патчинг - изменение функций объекта во время выполнения программы

декоратор этого не делает

Mad
28.08.2017
13:29:17
Каждый декоратор @bot.handle_message меняет поведение объекта bot

Kalinogorsky
28.08.2017
13:29:24
Всем привет. Скажите пожалуйста можно используя форматирование html в боте сделать текст по центру сообщения?

b0g3r
28.08.2017
13:29:32
декоратор в данном случае, это обычная обертка вместо @bot.message_handler(...) def func(): ... -> def func(): ... bot.message_handler(func, ...)

b0g3r
28.08.2017
13:30:12
внутри message_handler просто добавляет эту функцию в список обработчиков с заданными фильтрами

Sergey❄️
28.08.2017
13:30:30
ну телеграм!(
Блин, может в суппорт написать уже?

b0g3r
28.08.2017
13:30:35
куда?

в бот-суппорт?)

Mad
28.08.2017
13:30:39
Видишь, ты согласен, что это изменение фунционала instance'а

Google
b0g3r
28.08.2017
13:31:24
ещё и функционала :)

Sergey❄️
28.08.2017
13:31:31
в бот-суппорт?)
ну по поводу __init__

b0g3r
28.08.2017
13:31:42
ну по поводу __init__
так это не бот-суппорт, это десктоп-клиент

Rm
28.08.2017
13:31:42
графану кто ставил на бубунту 16? рабочий способ без хлопот кто знает?

смотрите если у меня на server_name висит под домен мой.сайт.дев как мне указать server_name для графаны? https://habrahabr.ru/post/302720/ server { server_name graphite.your.site; listen 80; access_log /var/log/nginx/graphite.access.log; error_log /var/log/nginx/graphite.error.log; root /usr/share/graphite-web; location = /favicon.ico { return 204; } location /content { alias /usr/share/graphite-web/static; expires max; } location / { uwsgi_pass unix:/var/run/graphite.sock; include uwsgi_params; } }

Sergey❄️
28.08.2017
13:31:54
так это не бот-суппорт, это десктоп-клиент
дк а я разве в бот-саппорт предлагал

b0g3r
28.08.2017
13:32:01
ну напиши

Admin
ERROR: S client not available

Sergey❄️
28.08.2017
13:32:25
Ваще - ишью на тдесктоп с предложением сделать выпадающее меню с B I для текстового поля

Stanislav
28.08.2017
13:32:28
дк а я разве в бот-саппорт предлагал
А зачем? Пуллреквест и поехали

Mad
28.08.2017
13:32:43
Демагог и троль
Бро, кончай истерить :) Можешь сколько угодно ярлыков на меня навесить, это смысла не прибавит ничему.

b0g3r
28.08.2017
13:32:44
там ад и пиздец

наследуйся/делай композицию и делай без декораторов

Kalinogorsky
28.08.2017
13:33:27
Нет
Спасибо.

b0g3r
28.08.2017
13:33:53
но я тебе ещё раз предлогаю переосмыслить own way и не говорить при людях, что он - pythonic way

Google
Mad
28.08.2017
13:34:09
own way?

Ну глянул я сорцы и что? Этот декоратор добавляет новый элемент в self.message_handlers, который НЕ существует на момент объявления класса.

Mad
28.08.2017
13:39:01
Да,бро, только в момент ОБЪЯВЛЕНИЯ класса метод init ещё не вызван, он вызывается в момент создания instance

b0g3r
28.08.2017
13:39:28
ты хочешь статический класс с роутингом?)

Mad
28.08.2017
13:39:51
Я хочу описать весь фунционал в момент определения класса, а не в момент создания его instance

Я это уже раза три повторил в разных вариантах.

b0g3r
28.08.2017
13:40:08
pythonic-way - сделать это в файле, используя декораторы

sad but true

Mad
28.08.2017
13:40:55
Я вообще не понимаю тон, в котором проходит дискуссия, большинство вообщше не поняло, о чём я говорю, но отправляет меня матчасть учить.

Жесть.

b0g3r
28.08.2017
13:41:10
второй вариант: запатчить Telebot :)

Mad
28.08.2017
13:42:00
pythonic-way - сделать это в файле, используя декораторы
Нет. Декораторы это сахар, которым злоупотребляют. Это моя позиция.

b0g3r
28.08.2017
13:42:15
ок, сделай тоже самое в файле, но без декораторов

зачем ты это классом пытаешься сделать?

и ща ещё задам вопрос, но ты наверное забомбишь

ну вот сделаешь ты класс бота, который в момент объявления будет содержать роутинг. ты же потом как-то с этим работать будешь, запросы к апи делать через bot.send_message? токен тоже вошьешь на момент объявления?

Mad
28.08.2017
13:43:35
Я пытаюсь сделать классом т.к. это логично объявить фунционал сущности в виде методов её класса

b0g3r
28.08.2017
13:43:36
или там всё таки подразумевается создание объекта, но не сразу?

Страница 1335 из 4042