Python. Подсказка для переменной
Я использую PyCharm
как редактор. Например, у меня есть следующая функция:
def get_instance():
# method without doc sctring in some module
# returns instance of MyClass
return some_var
И у меня есть второй файл, который вызывает get_instance()
:
var = get_instance()
Как я могу определить тип данных для значения? Я хочу использовать автозаполнение для переменной.
Например в php
это будет так:
/** @var MyClass $var */
$var = getInstance();
После этого я буду видеть все методы и свойства $var
, Как объявить строку документации для переменной Python? Я знаю о :type
а также :rtype
, но если мне нужно объявить тип для конкретной переменной? Могу ли я объявить несколько типов? Что я должен делать?
Примечание: я не могу делать какие-либо изменения с get_instance()
,
2 ответа
Вы можете сделать это так же, как описание свойств класса. Вот пример:
from example_module import MyClass
var = get_instance()
"""
:type var: MyClass
"""
Также вы можете использовать описание без импорта, как это:
var = get_instance()
"""
:type var: example_module.MyClass
"""
Второй способ - использование PEP 484:
test = my() # type: dict
Примеры автозаполнения в Pycharm:
Я не думаю, что вы можете сделать это с помощью docstring, но есть механизм, называемый аннотацией. Вы можете добавлять любое выражение к параметрам после двоеточия :
и к самому объявлению функции, используя стрелку ->
, Например:
def getInstance(param: str) -> MyClass
return some_var
Я добавил входной параметр в целях иллюстрации здесь. В этом случае str
а также MyClass
являются объектами, которые представляют ожидаемые типы ввода и возврата соответственно. Они никогда не используются в вашем коде напрямую, просто спрятаны в func_annotations
атрибут для конечных пользователей, которые заботятся о таких вещах (например, редакторы).