Автор оригинала: Doug Hellmann.
В дополнение к инструментам разработчика, рассмотренным в предыдущей главе, Python также включает модули, обеспечивающие доступ к его внутренним функциям. В этой главе рассматриваются некоторые инструменты для работы в Python независимо от области приложения.
Модуль предупреждений используется для сообщения о нефатальных состояниях или исправимых ошибках. Типичным примером предупреждения является DeprecationWarning
, генерируемый, когда функция стандартной библиотеки заменяется новым классом, интерфейсом или модулем. Используйте предупреждения
, чтобы сообщить об условиях, которые могут потребовать внимания пользователя, но не являются фатальными.
Определение набора классов, которые соответствуют общему API, может быть проблемой, когда API определяется кем-то другим или использует множество методов. Распространенный способ обойти эту проблему – унаследовать все новые классы от общего базового класса, но не всегда очевидно, какие методы следует переопределить, а какие могут вернуться к поведению по умолчанию. Абстрактные базовые классы из модуля abc формализуют API, явно отмечая методы, которые должен предоставлять класс, таким образом, чтобы предотвратить создание экземпляра класса, если он не реализован полностью. Например, многие типы контейнеров Python имеют абстрактные базовые классы, определенные в abc
или коллекциях.
Модуль dis можно использовать для дизассемблирования версии программы с байтовым кодом, чтобы понять, какие шаги выполняет интерпретатор для ее запуска. Просмотр дизассемблированного кода может быть полезен при отладке проблем производительности или параллелизма, поскольку он раскрывает атомарные операции, выполняемые интерпретатором для каждого оператора в программе.
Модуль inspect обеспечивает поддержку самоанализа для всех объектов в текущем процессе. Сюда входят импортированные модули, определения классов и функций, а также объекты, созданные из них. Самоанализ может использоваться для создания документации для исходного кода, динамической адаптации поведения во время выполнения или изучения среды выполнения программы.
- предупреждения – Несмертельные предупреждения
- abc – абстрактные базовые классы
- dis – дизассемблер байт-кода Python
- inspect – проверка живых объектов