Встроенная функция Python dir()
Без аргументов возвращает список имен в текущей локальной области видимости. С аргументом пытается вернуть список допустимых атрибутов для этого объекта.
Введение
Функция dir() в Python — это мощная встроенная функция, которая возвращает список имен в текущем пространстве имен или атрибуты заданного объекта. Она часто используется для интроспекции и исследования объектов, модулей и классов, помогая вам обнаружить доступные методы, атрибуты и имена, с которыми вы можете работать.
Синтаксис
dir([object])
object(необязательно): Объект, атрибуты которого вы хотите исследовать. Если не указан, возвращает имена в текущем пространстве имен.
Исследование имен в текущем пространстве имен
a = 10
b = "Hello"
def my_function():
pass
print(dir())
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'a', 'b', 'my_function']
Исследование атрибутов модуля
import math
print(dir(math))
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', ... ]
Исследование атрибутов объекта
class MyClass:
def __init__(self):
self.x = 5
self.y = "Hello"
obj = MyClass()
print(dir(obj))
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', ... 'x', 'y']
Использование dir() со встроенными типами
my_list = [1, 2, 3]
print(dir(my_list))
[..., 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
Фильтрация вывода dir()
import math
print([name for name in dir(math) if not name.startswith("__")])
['acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', ... ]