Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Внутри CPython гид по интерпретатору Python.pdf
Скачиваний:
6
Добавлен:
07.04.2024
Размер:
8.59 Mб
Скачать

Введение

Некоторые операции Python кажутся каким-то волшебством — почему поиск элементов по словарю выполняется намного быстрее, чем перебор по списку? Как генератор запоминает состояние переменных каждый раз, когда он возвращает значение командой yield? Почему нам не приходится выделять память, как в других языках?

Дело в том, что CPython, самая популярная реализация Python, написана на удобочитаемых языках C и Python.

CPython абстрагируется от сложностей операционной системы и лежащей в его основе платформы C. В CPython многопоточное выполнение становится прямолинейным и кроссплатформенным. Среда берет на себя все трудности управления памятью и упрощает его.

CPython предоставляет платформу для создания масштабируемых и высокопроизводительных приложений. На какой-то стадии вашего становления Python-разработчиком необходимо будет разобраться в том, как работает CPython. Абстракции не идеальны, и иногда приходится заглядывать внутрь.

А когда вы поймете, как работает CPython, это позволит вам в полной мере использовать его мощь и оптимизировать приложения. В книге объясняются понятия, идеи и технические детали CPython.

Вы разберетесь с основными концепциями внутреннего устройства CPython. В частности, научитесь:

zz читать исходный код и ориентироваться в нем; zz компилировать CPython из исходного кода;

zz вносить изменения в синтаксис Python и компилировать их в вашу версию CPython;

zz понимать внутреннюю реализацию таких структур, как списки, словари и генераторы;

Книги для программистов: https://t.me/booksforits

Как использовать эту книгу    17

zz управлять памятью CPython;

zz масштабировать код Python за счет параллелизма и конкурентного выполнения;

zz дополнять базовые типы новой функциональностью; zz выполнять наборы тестов;

zz профилировать и проводить бенчмарк Python-кода и исполнительной среды;

zz отлаживать код C и Python на профессиональном уровне;

zz изменять или обновлять компоненты библиотеки CPython, чтобы они могли использоваться в будущих версиях.

Не торопитесь с чтением, опробуйте демоприложения и интерактивные элементы. А когда вы усвоите основные концепции, которые сделают вас более успешным программистом, вы будете вполне оправданно гордиться своими достижениями!

КАК ИСПОЛЬЗОВАТЬ ЭТУ КНИГУ

Вся суть книги — обучение в процессе работы, поэтому обязательно начните с настройки IDE: прочитайте инструкции, загрузите код и напишите примеры.

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

Ошибки и умение исправлять их — часть процесса обучения. Возможно, вы найдете более эффективные способы реализации примеров; попробуйте изменить их и посмотрите, как это повлияет на результат.

При достаточной практике вы освоите весь материал. Приятного путешествия!

Нужно ли быть квалифицированным Pythonразработчиком для работы с книгой?

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

Книги для программистов: https://t.me/booksforits

18    Введение

Нужно ли знать C для работы с книгой?

Хорошее знание C не обязательно для чтения. Если у вас нет опыта программирования на C, ознакомьтесь с кратким введением в язык в приложении «Введение в C для Python-программистов».

Сколько времени займет чтение книги?

Мы не рекомендуем торопиться с чтением. Попробуйте читать ее по одной главе, практикуйтесь на примерах после каждой главы и одновременно анализируйте код. А когда вы закончите читать книгу, она станет полезным справочным руководством, к которому вы сможете время от времени возвращаться.

Не устареет ли материал книги?

Python существует уже более 30 лет. Некоторые части кода Python не изменялись с того момента, когда они были впервые написаны. Многие принципы, описанные в книге, оставались без изменений уже более 10 лет.

Более того, в ходе работы над книгой мы обнаружили, что многие строки кода были написаны Гвидо ван Россумом (автором Python) и остались неизменными с первой версии Python.

Некоторые концепции, представленные в книге, появились совсем недавно. Некоторые даже остаются в экспериментальном статусе. Работая над книгой, мы столкнулись с дефектами в исходном коде и ошибками в CPython, которые позднее были исправлены или доработаны1. Это часть феномена CPython как энергично развивающегося проекта с открытым исходным кодом.

Навыки, которые вы получите при работе с книгой, помогут вам читать и понимать код текущих и будущих версий CPython. Изменения происходят постоянно, и вместе с ними приходит опыт.

ДОПОЛНИТЕЛЬНЫЕ МАТЕРИАЛЫ

И УЧЕБНЫЕ РЕСУРСЫ

К книге прилагается ряд бесплатных дополнительных ресурсов, доступных по адресу realpython.com/cpython-internals/resources/.

1 https://realpython.com/cpython-fixes.

Книги для программистов: https://t.me/booksforits

Дополнительные материалы и учебные ресурсы    19

На этой веб-странице вы также сможете скачать примеры исходного кода.

Там же вы найдете список опечаток с исправлениями, которые ведет группа Real Python.

Лицензия на примеры кода

Сценарии Python, имеющие отношение к книге, распространяются на условиях лицензии CC0 (Creative Commons Public Domain)1. Это означает, что вы можете свободно использовать в своих программах любые части кода для любых целей.

CPython распространяется на условиях лицензии Python Software Foundation 2.0 (PSF 2.0)2. Сниппеты и примеры исходного кода CPython, приведенные в книге, соответствуют PSF 2.0.

ПРИМЕЧАНИЕ

Код, приведенный в книге, был протестирован с Python 3.9 для Win­ dows 10, macOS 10.15 и Linux.

Обратная связь и опечатки

Мы приветствуем идеи, предложения, обратную связь, а порой и критику. Тема показалась вам непонятной? Вы нашли ошибку в тексте или в коде? Мы пропустили тему, о которой вам хотелось бы узнать больше?

Мы всегда рады возможности улучшить свои учебные материалы. Пожалуйста, обращайтесь со своими замечаниями по адресу realpython.com/cpythoninternals/feedback.

О Real Python

На сайте Real Python можно изучать реальные навыки программирования в сообществе профессиональных питонистов со всего мира. Веб-сайт

1 https://creativecommons.org/publicdomain/zero/1.0/.

2 https://github.com/python/cpython/blob/master/LICENSE.

Книги для программистов: https://t.me/booksforits

20    Введение

realpython.com был запущен в 2012 году; в настоящее время он помогает более чем трем миллионам Python-разработчиков со всего мира своими книгами, учебниками по программированию и другими материалами.

Источники информации Real Python в интернете:

zz realpython.com;

zz Real Python Newsletter (https://realpython.com/newsletter); zz Real Python Podcast (https://realpython.com/podcast).

Книги для программистов: https://t.me/booksforits