Как найти исходный код метода python в vscode - PullRequest
1 голос
/ 07 января 2020

Я использую vscode и использовал функцию

>>> s = 'hello'
>>> s.capitalize()
'Hello'

Мне было интересно посмотреть исходный код функции, поэтому я щелкнул правой кнопкой мыши на capitalize и нажал go to Definition. Это привело меня к builtins.pyi, который выглядит как заглушка. Функция, которую он мне дал, была

def capitalize(self) -> str: ...

Это не слишком полезно, поэтому я гуглил исходный код строковой библиотеки python и получил

# Capitalize the words in a string, e.g. " aBc  dEf " -> "Abc Def".
def capwords(s, sep=None):
    """capwords(s [,sep]) -> string
    Split the argument into words using split, capitalize each
    word using capitalize, and join the capitalized words using
    join.  If the optional second argument sep is absent or None,
    runs of whitespace characters are replaced by a single space
    and leading and trailing whitespace are removed, otherwise
    sep is used to split and join the words.
    """
    return (sep or ' ').join(x.capitalize() for x in s.split(sep))

по следующей ссылке на github https://github.com/python/cpython/blob/3.7/Lib/string.py

Похоже, он вызывает capitalize, но я не могу найти исходный код для этого метода. Это в основном просто пример того, как я не смог найти код для метода / функции. Я хотел бы иметь возможность быстро увидеть исходный код VScode при программировании, так как это отличный способ для меня учиться.

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

1 Ответ

1 голос
/ 07 января 2020
Встроенные функции

Python (для cpython) записаны в C, поэтому vscode представляет вам фиктивные методы, которые показывают только сигнатуры функций. Если вы хотите просмотреть исходный код некоторых встроенных методов, вам нужно перейти на страницу GitHub с исходным кодом:

Источник встроенных функций: https://github.com/python/cpython/blob/master/Python/bltinmodule.c

Встроенные типы: https://github.com/python/cpython/tree/master/Objects

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...