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.