Где VSCode получает подпись docstring?

#python-3.x #visual-studio-code #docstring

#python-3.x #visual-studio-code #строка документа

Вопрос:

Где VSCode получает подписи docstring? Я не смог найти ни одного соответствующего раздела в настройках.

В моей установке ясно, что VSCode не использует подпись из __doc__ атрибута. Я хотел бы увидеть __doc__ (или установить его на вывод pydoc ), но я получаю что-то вроде приведенного ниже

введите описание изображения здесь

Вот подпись, которую я получаю от __doc__ или pydoc

 print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
  

Комментарии:

1. In: print.__doc__ Out: "print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)nnPrints the values to a stream, or to sys.stdout by default.nOptional keyword arguments:nfile: a file-like object (stream); defaults to the current sys.stdout.nsep: string inserted between values, default a space.nend: string appended after the last value, default a newline.nflush: whether to forcibly flush the stream." Это то, что я получаю от print.__doc__ . Возможно, VSCode использует другую установку python?

2. @PranavHosangadi Да, я проверил это, я использую тот же интерпретатор Python, для которого установлен VSCode (/usr/local/bin/python3). Что вы получаете при наведении курсора мыши на VSCode, получаете ли вы тот же вывод print.__doc__ или вы получаете что-то вроде моего скриншота?

3. Какая это версия Python? Возможно, это зависит от версии или платформы?

4. @PranavHosangadi Я пробовал с двумя разными системами, одна с 3.6, другая с 3.7, тот же результат.

Ответ №1:

Похоже, что он извлекает их из файлов-заглушек mypy, а также часть строки документа.

Файлы-заглушки для встроенных файлов и стандартной библиотеки можно найти по адресу. <python path>Libsite-packagesmypytypeshedstdlib . Инструкцию print, в частности, можно найти в __builtin__.pyi в 2 папке вокруг line 1354 .

 if sys.version_info >= (3,):
    class _Writer(Protocol):
        def write(self, __s: str) -> Any: ...
    def print(
        *values: object, sep: Optional[Text] = ..., end: Optional[Text] = ..., file: Optional[_Writer] = ..., flush: bool = ...
    ) -> None: ...
  

Github ссылается на соответствующую строку. Это более новая версия, поэтому она не совсем идентична.