Почему sqlite3 все еще использует __conform__?

Я заметил, что sqlite3Библиотека по-прежнему использует __conform__-метод адаптации объектов для хранения в базе данных.

Тогда вам нужно дать вашему классу метод __conform__(self, protocol) который должен вернуть преобразованное значение.

^ Документы Python 12.6.6.2.1 ^

Это похоже на PEP 246, который определяет __conform__-метод, но он был отклонен;

Я отказываюсь от этого ПКП. Должно произойти что-то намного лучшее; слишком рано говорить, что именно, но это не будет напоминать предложение в этом ПКП, поэтому лучше начинать новый ПКП. GvR.

^ Уведомление об отклонении PEP 246 ^

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

0 ответов

PEP 246 был предложением реализовать определенный шаблон проектирования (тестирование того, придерживается ли входящий объект заданного протокола) с использованием определенного имени. Предложение, если оно будет принято, добавило бы новый специальный метод в язык Python (__conform__), а также новую встроенную функцию (adapt).

Решение PEP просто отвергло стандартизацию. Это не запрещает разработчикам пакетов Python создавать и использовать такое соглашение о шаблонах / именах внутри своего кода. Это аналогично свободе, которую имеют разработчики sqlite3 при именованииCursor метод fetchone() скорее, чем fetchnext(). Они могут называть / разрабатывать свои компоненты пакета, как им нравится, в пределах разумного и полезного.

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