Документация по Python. Теоретические материалы, и практические задачи

Python dir

Метод Python dir — возвращает список атрибутов того или иного объекта. В практике, вам довольно часто придется сталкиваться с тем, что бы понять какие атрибуты есть у объекта. В таком случае, метод dir() будет являться отличным помощником. Синтаксис  метода dir() довольно прост в использовании.

Метод dir() принимает один необязательный параметр, это сам объект. Передавая объект методу dir() он пытается найти, и вернуть все атрибуты переданного объекта.

Возвращаемые значения метода dir()

  • Метод dir() — возвращает список атрибутов, переданного объекта.
  • В случае, если объект не передается методу dir(), то он вернет нам список имен из локальной области.

Ниже рассмотрим небольшой пример, который наглядно показывает, как устроена работа метода dir().

                    
number = [1, 2, 3]
print(dir(number))

print('\nReturn Value from empty dir()')
print(dir())

#Результат
['__add__', '__class__', '__contains__', '__delattr__',  '__delitem__', 
'__dir__', '__doc__', '__eq__', '__format__',  '__ge__',
 '__getattribute__', '__getitem__', '__gt__', '__hash__',  
'__iadd__', '__imul__', '__init__', '__init_subclass__',  '__iter__',
 '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__',
 '__reduce__', '__reduce_ex__', '__repr__', '__reversed__',  
'__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', 
 '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend',  
'index', 'insert', 'pop', 'remove', 'reverse', 'sort'] 
Return Value from empty dir() ['__annotations__', '__builtins__', 
'__doc__', '__loader__',  '__name__', '__package__', '__spec__', 'number']

В данном случае, мы передали методу dir(), стандартный метод print(), и получили список всех атрибутов. А теперь, ниже рассмотрим пример, пользовательского метода.

                    
class Person:
  def __dir__(self):
    return ['age', 'name', 'salary']
    

teacher = Person()
print(dir(teacher))

#Результат
['age', 'name', 'salary']

Как видите, все три атрибута нашего пользовательского класса, были возвращены в списке.