Функция dir() в Python: справочник атрибутов и методов
Python

Функция dir() в Python: справочник атрибутов и методов

Razilator

Функция dir() в Python является встроенной функцией, которая возвращает список всех атрибутов и методов объекта. Она используется для получения справочной информации о любом объекте в Python, включая модули, функции, списки, словари, классы и экземпляры классов.

Синтаксис функции dir()

Синтаксис функции dir() следующий:

dir([object])

где:

  • object - необязательный параметр. Если object не указан, то функция возвращает список всех идентификаторов в текущей локальной области видимости.

Примеры использования функции dir()

Давайте рассмотрим несколько примеров использования функции dir().

Пример 1: Использование функции dir() для получения списка методов и атрибутов модуля

main.py
import math

print(dir(math)) # ['__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'comb', 'copysign', 'cos', 'cosh', 'degrees', 'dist', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'isqrt', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'perm', 'pi', 'pow', 'prod', 'radians', 'remainder', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']

Пример 2: Использование функции dir() для получения списка методов и атрибутов класса

main.py
class MyClass:
    def __init__(self):
        self.x = 1
        self.y = 2

    def foo(self):
        pass

print(dir(MyClass)) # ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'foo']

Пример 3: Использование функции dir() для получения списка методов и атрибутов экземпляра класса

main.py
class MyClass:
    x = 1
    y = 2
    def method1(self):
        pass
    def method2(self):
        pass

obj = MyClass()
print(dir(obj)) # ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'method1', 'method2', 'x', 'y']

Заключение

В заключение можно отметить, что функция dir() является очень мощным инструментом для исследования объектов в Python. Она может помочь вам понять, какие атрибуты и методы доступны в объекте, и как их использовать.

Также стоит отметить, что в некоторых случаях использование dir() может быть неэффективным или ненужным, например, если вы знаете, какие атрибуты и методы доступны в объекте, или если вы хотите получить только определенную информацию об объекте.

Но в целом, функция dir() является полезным инструментом для исследования объектов в Python, особенно при работе с неизвестными или сложными объектами.

;