logo

dir()

dir(object)

Возвращает атрибуты объекта obj в алфавитном порядке. При вызове без аргумента, возвращает имена переменных, доступные в локальной области.

  • Определение в классе метода __dir__, позволяет управлять результатом выполнения данной функции для экземпляров класса.
  • Это может быть особенно полезно, когда класс определяет также методы доступа к атрибутам __getattr__ и __getattribute__.
  • Для объектов, класс которых не определен __dir__, функция попытается определить атрибуты по данным __dict__.
  • Возвращаемый список может включать не все атрибуты, особенно в случаях с переопределенным __getattr__.

Механизм извлечения имён может быть реализован по разному для различных типов:

  1. Если объект является модулем, список будет содержать имена атрибутов модуля;
  2. Если объект является типом или классом, список будет содержать имена атрибутов данного объекта и его родителей (вычисляются рекурсивно).
  3. В других случаях список будет содержать имена атрибутов самого объекта, его класса, и классов-родителей (вычисляются рекурсивно).

Параметры

Фукция dir() принимает один параметр:

  • объект — может быть пустым/заполненным кортежем, списком, набором, словарем и т. д. или любым определяемым пользователем объектом.

Возвращаемое значение

  • Функция dir() возвращает список допустимых атрибутов переданного объекта.

Примеры

dir(int)# ['__abs__', '__add__', '__and__', '__bool__', …]dir('some')# ['__add__', '__class__', '__contains__', '__delattr__', …]