Работаете в PyCharm? Тогда этот пост для вас!
В Python3 добавлен синтаксис аннотаций. То есть, в объявлении функции можно указать какие типы данных у нас тут крутятся. От простых, до сложносоставных.
Например, есть такая функция:
def my_func(x: int, y: float) -> float:
val = x * y
return val
В этой функции явно указаны типы, а значит, что IDE сможет адекватно анализировать ваш код и использовать всевозможные вспомогательные штуки. Автокомплит, или различные предупреждения о неверном использовании типа.
Между тем, в Python2 также можно делать аннотации так, чтобы PyCharm их понял. Записываются они иначе, с помощью комментариев (type hint). Вот та же функция для Python2:
def my_func(x, y): # type: (int, float) -> float
val = x * y
return val
Интерпретатору не мешает, а для IDE подсказки😊
Но знаете ли вы, что такой способ можно использовать и не только для аннотирования функции? Можно указать тип любой переменной в любой строке!
Например, у вас есть внешний API в котором типы не объявлены вообще никак. А хочется иметь автокомплиты для возвращаемых значений.
Вот пример:
import some_api
def my_func() -> str:
value = some_api.get_value()
# ... life without autocomplete is pain(((
return value
Для переменной value IDE не сможет сообразить автокомплиты или проверку типов. Но с помощью такого же type hint мы можем ему помочь! Даже подсветка будет работать)
...
value = some_api.get_value() # type: str
# autocomplete for str here!!!
...
После этого у переменной value появится автокомплит и всё остальное.
Теперь вы можете обозначать типы переменных хоть на каждой строке 😎
Запоминаем формат:
[code] # type: [Type]
#tricks