Python introspection
методы интроспекции
type(object)
возвращает объект type который показывает тип object, то же самое что и object.__class__
str(object)
вызывает object.__str()__, если __str__ нет, то возвращается repr(object). пишут что __str__ должна возвращать приятное для человека описание
repr(object)
пытается вернуть строчку, которая должна в eval() создавать этот объект, иначе возвращает в угловых скобках имя типа и адрес, вывод функции можно контролировать через __repr__
dir(object)
вызывает __dir__ если есть, который должен вернуть список атрибутов. иначе пытается взять информацию из __dict__ и типа объекта. по разному ведет себя с разными объектами. у класса пишет список функций и полей, очень удобно.
getmembers()
from inspect import getmembers
print(getmembers(db_host))
пишет список как dir() но и в добавок содержимое атрибутов по возможности
vars()
print(vars(object))
возвращает __dict__ объекта, для класса это поля со значениями
print(object)
простой метод, вызывает str(object)