Являются ли `.__mro__` и`.mro()`деталями реализации CPython?

Питоны type.mro()задокументировано в разделе 4.13. Специальные атрибуты, которые вводятся с:

Реализация добавляет несколько специальных атрибутов только для чтения к нескольким типам объектов, где они актуальны. Некоторые из них не сообщаются встроенной функцией dir().

Означает ли это, что это детали реализации CPython, которые могут отсутствовать в других реализациях Python?

1 ответ

Решение

Нет, они являются частью объектной модели Python. Вы можете рассчитывать на их присутствие в других реализациях Python, которые соответствуют эталонной реализации. Обратите внимание, что на странице конкретно сказано, что class.mro может быть изменено, чтобы настроить класс __mro__,

Также обратите внимание, что inspect.getmro доступен для всех реализаций Python и __mro__ атрибут также упоминается на странице модели данных.

Другие вопросы по тегам