Python3 int, реализация длинной унификации

Я только что прочитал PEP об унификации целых и длинных чисел в Python3k в PEP 237. Подход, использованный в этом, кажется очень интересным. Подход заключается в создании нового типа "integer", который является абстрактным базовым классом int и long. Кроме того, выполнение операций с целыми числами, которые приводят к очень большим числам, больше не будет приводить к ошибке OverflowError, вместо этого будет возвращаться тип long.

Я хотел бы увидеть и попытаться понять базовую реализацию этого в Python3k. Как мне это сделать? Какие файлы содержат сведения о реализации «типа»?

До сих пор я только рискнул прочитать большинство модулей stdlib не-C python; поэтому я не совсем понимаю, где именно искать.


person Community    schedule 24.09.2010    source источник


Ответы (1)


Начните с Include/longobject.h и Objects/longobject.h Эти пути относятся к корню исходного дерева Python. Обязательно вооружитесь редактором, подходящим для удобного просмотра кода C, или создайте связанный HTML-справочник с помощью GNU global.

Кроме того, было бы полезно прочитать эту статью о внутренностях объектов в Python 3, а также его продолжении.

person Eli Bendersky    schedule 24.09.2010