Являются ли `.__mro__` и`.mro()`деталями реализации CPython?
Питоны type.mro()
задокументировано в разделе 4.13. Специальные атрибуты, которые вводятся с:
Реализация добавляет несколько специальных атрибутов только для чтения к нескольким типам объектов, где они актуальны. Некоторые из них не сообщаются встроенной функцией dir().
Означает ли это, что это детали реализации CPython, которые могут отсутствовать в других реализациях Python?
1 ответ
Нет, они являются частью объектной модели Python. Вы можете рассчитывать на их присутствие в других реализациях Python, которые соответствуют эталонной реализации. Обратите внимание, что на странице конкретно сказано, что class.mro
может быть изменено, чтобы настроить класс __mro__
,
Также обратите внимание, что inspect.getmro
доступен для всех реализаций Python и __mro__
атрибут также упоминается на странице модели данных.