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)

 

Tags:

Яндекс.Метрика