#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 ссылается на соответствующую строку. Это более новая версия, поэтому она не совсем идентична.