Подтвердить что ты не робот

Состояние факультативного статического ввода в Python?

Я играл с Typscript некоторое время, и я должен сказать, что в комплекте с тем, что nodejs быстрее, чем текущая реализация для CPython для моих потребностей в веб-разработке, я был более склонен делать больше вещей с ним.

Фактически, я сделал несколько базовых приложений с ним, даже для рабочего стола. То, что мне нравится в Typescript, - это тот факт, что он имеет необязательные статические типы. Это делает кодирование часто намного проще, и не говоря уже о том, что intellisense поражает, когда вы хотите быстро закодировать и запустить прототип. Я также обнаружил меньше ошибок в процессе разработки.

Но вот проблема: я работаю с Python уже год, и мне нравится язык, и я больше привык к синтаксису. Тем не менее, все больше и больше, я вижу, что необязательная статическая типизация может быть удивительной плюс для Python. Итак, я сделал несколько исследований, я сначала начал с того, чтобы понять, что такое статическая типизация. Как и все остальные, я использовал поисковую систему, чтобы узнать.

Вот некоторые из источников информации, которые я прочитал:

Если вы посмотрите на реализацию здесь (выдержка из ссылки выше):

from StringIO import StringIO

def foo(f: StringIO) -> str:
    f.write("hello")
    return f.getvalue()

f1 = StringIO("booh+")
print foo(f1)  # prints "booh+hello"

Теперь это выглядит очень похоже на реализацию в Typescript. Однако, если взглянуть на дату, она вернется вплоть до 2004 года.

Затем я снова посмотрел на слайд, который BDFL, Guido сделал:

  1. Зачем добавлять статическую печать?

Опять же, вы видите ту же риторику. Тем не менее, я не смог найти никакой новой информации об этом.

Я также посмотрел @этот SO ответ на применение статических типов.

Итак, я хотел спросить, какова ситуация или состояние добавления необязательной статической типизации в Python? Или нам нужно изобрести что-то вроде Typescript, но для Python 3?

Я считаю, что необязательная статическая типизация важна, потому что в моем собственном очень ограниченном опыте я видел, что что-то вроде Typescript и С# работают лучше, так как при создании сложных классов или больших проектов я видел, что статические ввод текста прошел долгий путь, помогая мне писать код быстрее и без ошибок. Я уверен, что я не так хорош, как большинство разработчиков здесь, но это мое дело. Вот почему я считаю, что этот вопрос является важным. Я имею в виду, если бы у вас была необязательная набрав такой язык, как С#, с красивым синтаксисом, который предоставляет Python, тогда Python, вероятно, будет остановить (yay!).

Я провел некоторое исследование в этом, но у меня не было ничего существенного, поэтому я надеялся, что некоторые из удивительных и мудрых членов SO прольют свет на эту проблему.

4b9b3361

Ответ 1

Или нам нужно изобрести что-то вроде Typescript, но для Python 3?

Это mypy!!!: -)

Лично я думаю, что либо они собираются объединиться, либо Python собирается разработать собственное решение. Надеюсь, это произойдет очень скоро!!!