dir()

Функция dir() без аргументов возвращает список имён в текущей локальной области, а с объектом — список его атрибутов и методов. Используется для изучения API объектов и отладки.

Сигнатура

dir()
dir(object)

Возвращает: отсортированный list строк.

Примеры

Без аргументов — текущая область:

x = 10
y = "hi"
print(dir())
['__builtins__', '__doc__', '__name__', 'x', 'y']

Атрибуты строки (фильтруем dunder-методы):

methods = [m for m in dir(str) if not m.startswith("_")]
print(methods[:8])
print(len(methods))
['capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find']
47

Атрибуты модуля:

import math
public = [a for a in dir(math) if not a.startswith("_")]
print(public[:6])
['acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2']

Свой класс — видны и методы, и атрибуты экземпляра:

class Robot:
    def __init__(self, name):
        self.name = name
    def move(self):
        pass
    def stop(self):
        pass

r = Robot("Phobo")
print([a for a in dir(r) if not a.startswith("_")])
['move', 'name', 'stop']

Поиск метода по подстроке:

for m in dir(list):
    if "sort" in m or "rev" in m:
        print(m)
__reversed__
reverse
sort

См. также

Примечание

Описание основано на официальной документации Python (docs.python.org), распространяемой под лицензией PSF License v2. © Python Software Foundation.