@ru_python

Страница 9569 из 9768
Slam! 538
11.07.2019
11:01:46
Что такое генерики?

BlackAndOrange
11.07.2019
11:03:40
А в чём их неполноценность?
Они ничего не делают в рантайме, фактически В идеале, class A(Generic[T]): def __init__(val: T): ... class B(A[int]): ... class C(A[str]): ... A[int](1) # Не даст B(1) A(1) # Тем более

Google
DeepHill
11.07.2019
11:03:52
Что такое генерики?
Пользовательские типы данных если в двух словах

Tishka17
11.07.2019
11:04:03
наследник - это наслденик

к механизму дженериков не имеет никакого отношения

BlackAndOrange
11.07.2019
11:04:36
Если T определить как controversial, то наследование имеет несколько другую семантику

Tishka17
11.07.2019
11:05:22
они остаются наследниками, но нарушается принцип подстановки. Но да

BlackAndOrange
11.07.2019
11:05:25
Тогда B — это специализация A

Tishka17
11.07.2019
11:05:29
ну

B - это специализация A[int]

BlackAndOrange
11.07.2019
11:05:40
Ну, да

Tishka17
11.07.2019
11:05:49
и не равна A[int]

все нормально

Я не понтмаю, почему роутинг и реализацию обработчиков ты хочешь смешивать в одной иерархии

Google
Bogdan (SirEdvin)
11.07.2019
11:06:51
@Tishka17 вот так например можно сделать: https://pastebin.com/zRvpT3Lt

Tishka17
11.07.2019
11:07:16
ух, переменные класса

@Tishka17 вот так например можно сделать: https://pastebin.com/zRvpT3Lt
сделай теперь из этого две таблицы роутинга с одними обработчиками

BlackAndOrange
11.07.2019
11:07:39
Потому что в связи со спецификой задачи у меня есть гарантия, что мне никогда не потребуется две иерархии обработчиков

Tishka17
11.07.2019
11:07:57
иерархия - это одно, а роутинг - другое

Bogdan (SirEdvin)
11.07.2019
11:07:59
сделай теперь из этого две таблицы роутинга с одними обработчиками
Имеется ввиду роутинг по двум параметрам или что?

BlackAndOrange
11.07.2019
11:08:04
@Tishka17 вот так например можно сделать: https://pastebin.com/zRvpT3Lt
Не, так и я могу А теперь проставь здесь статическую типизацию

Tishka17
11.07.2019
11:08:17
Имеется ввиду роутинг по двум параметрам или что?
нет, для двух источников событий регистрировать два разных набора обработчиков

BlackAndOrange
11.07.2019
11:08:27
Тут даже ABC не нужен, проблема в том, что __init_subclass__ не работает с генериками

Tishka17
11.07.2019
11:08:28
частично одних и тех де

вы нарушеает Single Respoinsibility этим кодом

и делаете невозможным переиспользование кода обработчиков

Bogdan (SirEdvin)
11.07.2019
11:09:15
Вообще-то нет

BlackAndOrange
11.07.2019
11:09:17
Если мне потребуется переиспользовать код обработчика, я вынесу реализацию в Mixin и отнаследую от него два раза

Tishka17
11.07.2019
11:09:20
у вас синглтон со всеми последствиями

Bogdan (SirEdvin)
11.07.2019
11:09:24
Можно же сделать так, что бы в target можно было передавать массив

И можно было несколько раз использовать один и тот же таргет

Как бы

Ну и да, я специально сделал это синглтонами

Google
BlackAndOrange
11.07.2019
11:09:54
Но в моём конкретном приложении задачи с гарантией нет необходимости строить две иерархии обработчиков

Tishka17
11.07.2019
11:10:00
Выносишь обработчик в отдельный класс. А потом регистрируешь в роутере

никогда нет гарантии

Bogdan (SirEdvin)
11.07.2019
11:10:22
Tishka17
11.07.2019
11:10:24
и снова - иерархия != роутинг

BlackAndOrange
11.07.2019
11:10:48
Выносишь обработчик в отдельный класс. А потом регистрируешь в роутере
Нарушает DRY, при добавлении нового обработчика будет нужно прописывать его в нескольких местах приложения

Bogdan (SirEdvin)
11.07.2019
11:10:52
Ну, у меня есть гарантия, что мне не нужно будет переиспользовать конечные стратегии, потому что они всегда листы

Tishka17
11.07.2019
11:11:10
Нарушает DRY, при добавлении нового обработчика будет нужно прописывать его в нескольких местах приложения
в одном - там где он должен применяться. Хочешь - в тестах его тестишь в отрыве от других

И вообще непонятно, почему обработчик - класс, а не инстанс класса

Bogdan (SirEdvin)
11.07.2019
11:13:03
А зачем инстанс класа?

Если у обработчика нет состояния

Aleh
11.07.2019
11:13:22
Откуда pip берёт информацию какую версию питона поддерживает библиотека?

Natali
11.07.2019
11:13:28
Куда делись мои сообщения??

Tishka17
11.07.2019
11:13:36
Почему у тебя class B(Router):... А не class B:... router.add(B())

Natali
11.07.2019
11:13:59
Про то, у кого можно спросить про причину бана в питон бегиннерс? Хотя я там ничего не писала еще, только читала??

BlackAndOrange
11.07.2019
11:14:44
Почему у тебя class B(Router):... А не class B:... router.add(B())
Чтобы не прописывать B в двух местах, очевидно же. Создал класс и забыл. И ещё чтобы не городить отдельный класс роутера с логикой добавления обработчиокв. В моей реализации весь «роутер» — это один метод на три строчки и один dict.

BlackAndOrange
11.07.2019
11:15:44
Ладно, эта дискуссия ушла сильно не в ту сторону

Исходно я кагбэ спрашивал про workaround над генериками, которые не работают с __init_subclass__

Google
Slam! 538
11.07.2019
11:16:43
Пользовательские типы данных если в двух словах
Покажи, если есть возможность, пример генерика, пожалуйста

Tishka17
11.07.2019
11:16:48
да я ж говорю, ты выдумал себе проблему

Natali
11.07.2019
11:16:53
сейчас разбаню. Была флуд атака в это время
Ок пасиб. Скиньте плиз ссылку на чат, а то я ж на память не помню

Natali
11.07.2019
11:17:27
Tishka17
11.07.2019
11:18:32
Покажи, если есть возможность, пример генерика, пожалуйста
https://github.com/Tishka17/dataclass_factory/blob/master/tests/test_generic.py

Oleksandr
11.07.2019
11:27:16
Вы што до 4 утра это обсуждали ?
не мы, а я) ночью работать холодно, уютно, а днём люди, жарко, бе.

Oleksandr
11.07.2019
11:28:13
кондиционер
кондиционер не помогает от солнца и людей)

а сидеть за шторами закрытыми неинтересно :)

Владимир
11.07.2019
11:28:29
Oleksandr
11.07.2019
11:28:46
А как без солнца и людей?)))
я встаю в 2-4 дня летом, чтобы поменьше солнца застать, очень оно мне не нравится)

Владимир
11.07.2019
11:28:50
кондер + наушники

Oleksandr
11.07.2019
11:28:57
а из людей мне дома жены хватает, снаружи не очень нужны :)

Владимир
11.07.2019
11:29:06
?????

Oleksandr
11.07.2019
11:30:04
кондер + наушники
я и ночью в наушниках) вопрос таки в солнце. есть что-то именно вот, когда темнооо, окно открыто, никого нет, что-нибудь такое мелодичное играет, и кодишь. или можно какое-нибудь жесткое техно включить и по клаве громко стучать, как хакИр.

в общем, ночью хорошо, а солнце переоценено и мне не нравится :)

Oleksandr
11.07.2019
11:32:28
шторы?
"а сидеть за шторами закрытыми неинтересно :)"

Google
Andrey
11.07.2019
11:32:33
ночью тихо.

Oleksandr
11.07.2019
11:33:14
там же поезда иногда проезжают, фонарь там, машина раз в час какая-нибудь, кто-нибудь ночью на поезд идёт пару раз в неделю, птишки всякие ближе к рассвету просыпаются. ляпота же.

Владимир
11.07.2019
11:38:02
Или, как у меня, соседи сверху делают всех окружающих слушателями своей ночной жизни.

Oleksandr
11.07.2019
11:40:33
Не сиди в темноте. Угробишь зрение быстрее.
так я со светом. снаружи темно :)

DeepHill
11.07.2019
11:46:40
Не сиди в темноте. Угробишь зрение быстрее.
Да нагрузки на глаза но про "угробить зрение " миф

Нельзя угробить зрение это генетика + возраст

Maxim robox
11.07.2019
11:47:27
DeepHill
11.07.2019
11:47:41
Нет

Владимир
11.07.2019
11:47:53
DeepHill
11.07.2019
11:48:08
Кто тебе миф о мифе рассказал?
Курс офтальмологии в вузе

Maxim robox
11.07.2019
11:48:09
Нет
Сомнительное утверждение.

Владимир
11.07.2019
11:48:58
Курс офтальмологии в вузе
Вот почему к офтальмологам опасно ходить

DeepHill
11.07.2019
11:49:25
И читать лёжа и в транспорте тоже не вредно

Это все мифы

Владимир
11.07.2019
11:49:59
Не знаю, что они расссказывают, но про себя могу сказать, что две десятки от 100% я потерял за 15 лет у компа и глаза конкретно устают в темноте.

Владимир
11.07.2019
11:50:36
При этом две-три недели без монитора и частично дело улучшается. Но уже не возвращается на 100%

Страница 9569 из 9768