Поиск исходного кода для встроенных функций Python?

Возможный дубликат:
О встроенном в sort () методе python

Есть ли способ увидеть, как встроенные функции работают в python? Я не имею в виду, как их использовать, но также как они были построены, каков код, отсортированный или перечислимый и т. Д. …?

  • Что делает «del» в точности?
  • Почему медленнее перебирать небольшую строку, чем небольшой список?
  • Почему repr (int) быстрее, чем str (int)?
  • Почему в Python требуется в три раза больше памяти?
  • Порядок вставки в наборах (при разборе {})
  • Почему проверка isinstance (что-то, Mapping) настолько медленная?
  • Переменное назначение быстрее, чем один вкладыш
  • Создание объекта x, для которого «x в » возвращает False
  • 5 Solutions collect form web for “Поиск исходного кода для встроенных функций Python?”

    Поскольку Python является открытым исходным кодом, вы можете прочитать исходный код .

    Чтобы узнать, какой файл используется в конкретном модуле или функции, вы обычно можете распечатать атрибут __file__ . В качестве альтернативы вы можете использовать модуль inspect , см. Раздел « Извлечение исходного кода» в документации по inspect .

    Для встроенных классов и методов это не так просто, поскольку inspect.getfile и inspect.getsource возвращают ошибку типа, inspect.getsource , что объект встроен. Тем не менее, многие из встроенных типов можно найти в подкаталоге Objects соединительной линии Python . Например, см. Здесь для реализации класса enumerate или здесь для реализации типа list .

    Вот ответ поваренной книги, чтобы дополнить ответ @Chris:

    1. При необходимости установите Mecurial.
    2. hg clone https://hg.python.org/cpython

      или

      git clone https://github.com/python/cpython.git

    3. Код будет cpython в подкаталоге cpython -> cd cpython

    4. Предположим, что мы ищем определение print()
    5. egrep --color=always -R 'print' | less -R
    6. Ага! См. Python/bltinmodule.c -> builtin_print()

    Наслаждаться.

    Скрытая оболочка iPython делает эту function? простой: предоставит вам документацию. function?? также показывает код. НО это работает только для чистых функций python.

    Затем вы всегда можете скачать исходный код для (c) Python.

    Если вас интересуют питоновые реализации основных функциональных возможностей, посмотрите на источник PyPy .

    вы можете просто использовать команду help() чтобы получить помощь о встроенных функциях, а также его код.

    например: если вы хотите увидеть код для str (), просто введите – help(str)

    он вернется так,

     >>> help(str) Help on class str in module __builtin__: class str(basestring) | str(object='') -> string | | Return a nice string representation of the object. | If the argument is a string, the return value is the same object. | | Method resolution order: | str | basestring | object | | Methods defined here: | | __add__(...) | x.__add__(y) <==> x+y | | __contains__(...) | x.__contains__(y) <==> y in x | | __eq__(...) | x.__eq__(y) <==> x==y | | __format__(...) | S.__format__(format_spec) -> string | | Return a formatted version of S as described by format_spec. | | __ge__(...) | x.__ge__(y) <==> x>=y | | __getattribute__(...) -- More -- 

    Вот обновленная версия ответа кулинарной книги @ kevinarpe в ответ на ответ @Chris, теперь, когда Python перешел в GitHub, а репозиторий Mercurial больше не обновляется.

    1. При необходимости установите Git.
    2. git clone https://github.com/python/cpython.git
    3. Код будет cpython в подкаталоге cpython -> cd cpython
    4. Предположим, что мы ищем определение print()
    5. egrep --color=always -R 'print' | less -R
    6. Ага! См. Python/bltinmodule.c -> builtin_print()

    Наслаждаться.

    Python - лучший язык программирования в мире.