Я просто прочитал PEP, касающийся унификации ints и longs в Python3k в PEP 237. Подход, используемый в этом, кажется очень интересным. Подход заключается в создании нового типа "целое число", которое является абстрактным базовым классом int и long. Кроме того, выполнение операций над int, которые приводят к очень большим числам, больше не приведет к OverflowError, вместо этого оно вернет длинный.
Я бы хотел увидеть и попытаться понять базовую реализацию этого в Python3k. Как мне это сделать? Какие файлы содержат сведения о реализациях типа?
До сих пор я только отважился прочитать большинство модулей stdlib не-C python; поэтому я не понимаю, где именно искать.
Начните с Include/longobject.h
и Objects/longobject.h
. Эти пути относятся к корню исходного дерева Python. Убедитесь, что вы вооружились редактором, подходящим для удобного просмотра кода C, или сгенерируйте ссылку, связанную с HTML, с помощью GNU global
.
Кроме того, он, несомненно, поможет прочитать эту статью о внутренних объектах в Python 3, а также о его продолжении.