Ответ
Для интроспекции объекта в Python и получения списка его атрибутов, включая методы, используется встроенная функция dir().
Однако dir() возвращает имена всех атрибутов (полей, методов, служебных атрибутов). Чтобы отфильтровать только методы, необходимо дополнительно проверить, является ли атрибут вызываемым (callable).
Пример:
class MyClass:
my_attribute = 42
def my_method(self):
"""Это публичный метод."""
pass
def _internal_method(self):
pass
instance = MyClass()
# 1. Получить все атрибуты и методы
# print(dir(instance))
# Вывод будет содержать '__class__', 'my_attribute', 'my_method' и др.
# 2. Получить только пользовательские методы
methods = [method_name for method_name in dir(instance)
if callable(getattr(instance, method_name)) and not method_name.startswith('__')]
print(methods)
# Вывод: ['_internal_method', 'my_method']
Дополнительные инструменты
help(instance): Выводит подробную справку по объекту, включая документацию методов.inspect.getmembers(instance, inspect.ismethod): Более строгий способ из модуляinspect, который вернет пары(имя, объект_метода).instance.__dict__: Словарь, содержащий только атрибуты, принадлежащие экземпляру, а не его классу.