Метод Python dir — возвращает список атрибутов того или иного объекта. В практике, вам довольно часто придется сталкиваться с тем, что бы понять какие атрибуты есть у объекта. В таком случае, метод dir() будет являться отличным помощником. Синтаксис метода dir() довольно прост в использовании.
dir([object])
Метод 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']
Как видите, все три атрибута нашего пользовательского класса, были возвращены в списке.