У меня есть класс, реализующий метод __dir__
. Однако я не совсем уверен в некоторых деталях dir
API.
A: Действительно ли требуется, чтобы __dir__
возвращал список? В моей реализации используется set
, чтобы избежать двойного перечисления атрибутов, нужно ли мне преобразовать его в список перед возвратом? Из документации я бы предположил, что это должен быть список:
Если у объекта есть метод с именем dir(), этот метод будет вызван и должен вернуть список атрибутов.
Однако не будет ли в какой-то момент возвращаться функция разрыва списка?
B: Нужно ли сортировать результат? Документация здесь немного двусмысленна:
Полученный список сортируется по алфавиту.
Означает ли это, что вызов встроенного dir
автоматически сортирует данные, возвращаемые __dir__
, или это означает, что dir
ожидает отсортированные данные от __dir__
?
РЕДАКТИРОВАТЬ: Кстати, мой вопрос касается Python 2 (2.6 и 2.7) и 3 (3.3, 3.4).