LINUX.ORG.RU

История изменений

Исправление Virtuos86, (текущая версия) :

Долговато ты на ответ сподабливался, аж к 5-ой странице смог. Но естественно, не убедил 😊.

Итого преимущества скриптухи: кода писать раза в три меньше (факт), пролцесс его отладки - это просто сказка: ты можешь буквально по шагам вперед-назад ходить, смотреть как изменяются переменные и тп.

Сказка она в лишпе, где отладка и работа с образом заложены в основу ЯП. В питоне интерпетатор отдельно, код отдельно. Ну, можно что-то интроспекцией из байткода вытащить, однако это не штатная возможность, о которой в тьюториале каждому новичку рассказывают. В этом отношении питон ничем не лучше какой-нить сишки, там тоже отладчики есть.

Без хинтов ничего непонятно что туда передавать, а так понятно:

def listen(self, address: tuple[str, int],

Если у тебя здесь str это не питонячий стринг, а domain-specific сущность, и int не питонячье целое, а упомянутый UUID, то ничего тебе не понятно. Проблема скриптописателей в том, что они всюду тащат встроенные типы данных, которые вроде как везде подходят, но почти всегда имеют «чуть-чуть» более широкий контракт на использование, чем нужный тип. В точности, как ты описал:

если заходит речь о деньгах, потому как можно Decimal передать, можно сумму представить как флоат, можно вообще целым типа 1 рубль = 1000

Ну и какой тут int? Ты уже бомбу закладываешь, пытаясь запихать тут встроенный тип данных. В твоём примере по уму будет def listen(self, address: tuple[URI, UUID], (не уверен, что угадал, что там должно быть правда) — вот это уже попытка в статическую типизацию, а твоя версия это такая же скриптодрисня, что и без сигнатуры вообще.

Исходная версия Virtuos86, :

Долговато ты на ответ сподабливался, аж к 5-ой странице смог. Но естественно, не убедил 😊.

Итого преимущества скриптухи: кода писать раза в три меньше (факт), пролцесс его отладки - это просто сказка: ты можешь буквально по шагам вперед-назад ходить, смотреть как изменяются переменные и тп.

Сказка она в лишпе, где отладка и работа с образом заложены в основу ЯП. В питоне интерпетатор отдельно, код отдельно. Ну, можно что-то интроспекцией из байткода вытащить, однако это не штатная возможность, о которой в тьюториале каждому новичку рассказывают. В этом отношении питон ничем не лучше какой-нить сишки, там тоже отладчики есть.

Без хинтов ничего непонятно что туда передавать, а так понятно:

def listen(self, address: tuple[str, int],

Если у тебя здесь str это не питонячий стринг, а domain-specific сущность, и int не питонячье целое, а упомянутый UUID, то ничего тебе не понятно. Проблема скриптописателей в том, что они всюду тащат встроенные типы данных, которые вроде как везде подходят, но почти всегда имеют «чуть-чуть» более широкий контракт на использование, чем нужный тип. В точности, как ты описал:

если заходит речь о деньгах, потому как можно Decimal передать, можно сумму представить как флоат, можно вообще целым типа 1 рубль = 1000

Ну и какой тут int? Ты уже бомбу закладываешь, пытаясь запихать тут встроенный тип данных. Тут по уму будет def listen(self, address: tuple[URI, UUID], (не уверен, что угадал, что там должно быть правда) — вот это уже попытка в статическую типизацию, а твоя версия это такая же скриптодрисня, что и без сигнатуры вообще.