
Nikolay
11.07.2019
11:01:24

Slam! 538
11.07.2019
11:01:46
Что такое генерики?

Tishka17
11.07.2019
11:03:39

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
ух, переменные класса

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
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 можно было передавать массив
И можно было несколько раз использовать один и тот же таргет
Как бы
Ну и да, я специально сделал это синглтонами

Tishka17
11.07.2019
11:09:49

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

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

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

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

Slam! 538
11.07.2019
11:15:30

Tishka17
11.07.2019
11:15:43

BlackAndOrange
11.07.2019
11:15:44
Ладно, эта дискуссия ушла сильно не в ту сторону
Исходно я кагбэ спрашивал про workaround над генериками, которые не работают с __init_subclass__

Google

Tishka17
11.07.2019
11:16:04

Slam! 538
11.07.2019
11:16:43

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

Natali
11.07.2019
11:16:53

Tishka17
11.07.2019
11:17:16

Natali
11.07.2019
11:17:27

Tishka17
11.07.2019
11:18:32

Oleksandr
11.07.2019
11:27:16

Владимир
11.07.2019
11:27:41

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

Владимир
11.07.2019
11:28:29

Oleksandr
11.07.2019
11:28:46

Владимир
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
кондер + наушники
я и ночью в наушниках) вопрос таки в солнце. есть что-то именно вот, когда темнооо, окно открыто, никого нет, что-нибудь такое мелодичное играет, и кодишь. или можно какое-нибудь жесткое техно включить и по клаве громко стучать, как хакИр.
в общем, ночью хорошо, а солнце переоценено и мне не нравится :)

Дмитрий
11.07.2019
11:31:24

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
Или, как у меня, соседи сверху делают всех окружающих слушателями своей ночной жизни.

Maxim robox
11.07.2019
11:40:10

Oleksandr
11.07.2019
11:40:33

Maxim robox
11.07.2019
11:41:02

Oleksandr
11.07.2019
11:41:05

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 лет у компа и глаза конкретно устают в темноте.

DeepHill
11.07.2019
11:50:15
Но зрения теряется совершенно по другим причинам

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