@spbpython

Страница 238 из 785
GNU/Docker
29.12.2016
14:22:48
я так понимаю эти аннотации просто разрешены синтаксически?

тайпчекинг и прочее как обычно отдано как соглашения, как это принято в сипайтон.

да?

Dmitry
29.12.2016
14:23:58
угу. IDE будет разруливать

Google
GNU/Docker
29.12.2016
14:24:05
мда

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

то есть стдлиб идёт нафиг.

и я могу проверить только собственный факториал

верно?

Dmitry
29.12.2016
14:26:01
ну некоторые IDE-шки уже пытаются выводить типы... но бывает что не очень получается

а тут ты типа подсказываешь

GNU/Docker
29.12.2016
14:26:18
уверен в этом.

когда у тебя функция возвращает None или что-то ещё, например.

как проверить сложение с чем-то, да?)

Не выполняя код.

Потому что это аннотации

и типы не у переменных

Google
GNU/Docker
29.12.2016
14:27:13
а у значений.

{"key": value_object}.get("key", False)

как с таким работать

@delimitry где аннотации применять вообще?

Dmitry
29.12.2016
14:29:23
пишешь такой : Any)))

GNU/Docker
29.12.2016
14:29:26
Где это может помочь.

Лол

збс

Хочу auto )

и чтобы типы выводились.

Dmitry
29.12.2016
14:31:05
@delimitry где аннотации применять вообще?
я у себя нигде пока не применяю. ребята пробовали. вроде не зашло. @td_mulga @lig11 вы юзали же?

GNU/Docker
29.12.2016
14:31:37
Я попытался применить их в трансляторе асма простенького.

Чёт тоже так себе.

Правда предыдущие

тайп аннотейшнс для функций.

громоздко и отвратительно получилось.

Zart
29.12.2016
14:33:12
>>> def foo(): ... X: anyshit = object ... return X ... >>> foo() <class 'object'>

meh...

Dmitry
29.12.2016
14:35:52
It should also be emphasized that Python will remain a dynamically typed language, and the authors have no desire to ever make type hints mandatory, even by convention.

Zart
29.12.2016
14:36:25
и я чота не понял, это было фичей 3.5го

Google
Dmitry
29.12.2016
14:36:47
так тут для переменных

а не для функций

Zart
29.12.2016
14:37:11
и?

это всё равно было в 3.5

Status: Accepted Type: Standards Track Created: 29-Sep-2014 Python-Version: 3.5

Dmitry
29.12.2016
14:38:51
У меня в 3.5 >>> a: str = '123' File "<stdin>", line 1 a: str = '123' ^ SyntaxError: invalid syntax

Zart
29.12.2016
14:39:01
гм. угу..

ошибка в пепе или куда

Dmitry
29.12.2016
14:39:34
Это PEP-0526

Zart
29.12.2016
14:39:45
а я на 484й смотрю

Dmitry
29.12.2016
14:39:53
да этот в 3.5 был ага

Zart
29.12.2016
14:40:27
а, типы. то что после стрелок и двоеточий, хм

Eugene
29.12.2016
17:10:26
Ну, мне кажется, что это всяко лучше чем описывать тип в комментарии для переменных как предлагается в PyCharm для < 3.6. Без знания типа ведь никакой автокомплит нормально работать не будет, а без нормального автокомплита только hello world можно написать с современными библиотеками.

Ещё очень полезно, когда IDE показывает, что в функции переменная используется, скажем, как строка, а ты запихал туда число. И после вот такого мне смешно читать или спорить на тему "Я в блокноте код пишу и нормально всё!"

Serge
29.12.2016
18:07:15
угу. IDE будет разруливать
Не ну как. Есть стандарт де факто - mypy

Eugene
29.12.2016
18:08:17
А что mypy? Запускать его каждый раз для прогона кода? Оно же вроде как вещь в себе, ни в какую IDE его не встроишь.

Serge
29.12.2016
18:09:23
я у себя нигде пока не применяю. ребята пробовали. вроде не зашло. @td_mulga @lig11 вы юзали же?
Ну, скажем так, оно работает с mypy ровно так, как если бы у тебя был проверяющий типы компилятор

Zart
29.12.2016
18:11:22
а что делать если функции пофиг на тип входных данных, пока оно крякает?

GNU/Docker
29.12.2016
18:11:48
Делать тайпкласс.

Serge
29.12.2016
18:11:52
Google
GNU/Docker
29.12.2016
18:11:53
и указывать его

Zart
29.12.2016
18:12:00
в 99% мне насрать на тип, меня волнует интерфейс/контракт

Zart
29.12.2016
18:12:17
абц не хотеть

Serge
29.12.2016
18:12:19
Eugene
29.12.2016
18:12:34
в 99% мне насрать на тип, меня волнует интерфейс/контракт
IDE для Python должна понимать утиную типизацию

GNU/Docker
29.12.2016
18:12:49
Это как еще?

Serge
29.12.2016
18:13:04
Нетипизированный контакт - зло больше, чем неявная типизация

Zart
29.12.2016
18:13:20
IDE для Python должна понимать утиную типизацию
def add(a, b): return a + b как должна иде помочь с таким случаем?

Admin
ERROR: S client not available

GNU/Docker
29.12.2016
18:13:48
сходить в будущее и сказать въёбло в рантайме или нет.

Zart
29.12.2016
18:13:49
туда реально можно скормить примерно что угодно

Eugene
29.12.2016
18:14:01
для этого и надознать типы a и b, чтобы знать, что они должны уметь складываться

GNU/Docker
29.12.2016
18:14:02
нет других вариантов.

и вывода типов нет

потому что системы типов нет

ну то есть

вы понели

Serge
29.12.2016
18:14:25
def add(a, b): return a + b как должна иде помочь с таким случаем?
Проверить все вызовы на типы поддерживающие сложение

Zart
29.12.2016
18:15:06
т.е. при пишем add( и оно должно выдать список всего, что содержит __add__ и __iadd__ ?

Google
Zart
29.12.2016
18:15:25
если оно в такое научится - это будет магией

Serge
29.12.2016
18:15:50
потому что системы типов нет
Есть. Она есть и без аннотаций так то. Чай не руби или жеэс

Это в обратную сторону
Сейчас оно может проверить, что все возможные варианты a b смогут сложение

Короче, есть кейсы, когда оно мешает, тогда тесты, но в 80% кода, на самом деле, типы данных известны.

Вы лучше скажите, в 3.6 magic.io стало ближе или пока нет?

Я про uvloop под asyncio

Они же вроде грозились притащить его в батарейки чуть ли ни целиком

Zart
29.12.2016
18:21:37
а я правильно помню что ювлуп - это ноды кусок?

Serge
29.12.2016
18:23:37
It should also be emphasized that Python will remain a dynamically typed language, and the authors have no desire to ever make type hints mandatory, even by convention.
Но мы же все понимаем, что это сказано, чтобы хомячки инсульт не схватили. И в реальном проекте нужно ?% переменных покрывать типами. Ибо явная типизация - великая благодать

а я правильно помню что ювлуп - это ноды кусок?
Ну, порт типа. А почему бы и нет?

Zart
29.12.2016
18:24:50
да я не против, там кошерный IOCP же

Alex
29.12.2016
18:24:58
Привет всем!

О опять про типы

Serge
29.12.2016
18:25:24
Я вот сейчас на Go пишу утилиту по работе... Ну вы пони ?

Alex
29.12.2016
18:25:47
го это хорошо

в проце(типов нет)

остальное все пройдет

одни договоренности

Serge
29.12.2016
18:26:59
Python с uvloop и mypy - это Go с эксепшенами и нормальным ооп, но хреновым gc

Alex
29.12.2016
18:27:35
приятно конечно ловить ощибки в процессе компиляции

Страница 238 из 785