Достался нам в наследство какой-то код. А там непонятный объект с названием super_object_1. Как понять что это за объект?

На помощь приходят встроенные функции - type(), dir(). Если с type() все ясно - возвращает тип, то с dir не совсем.

dir - Возвращает имена переменных, доступные в локальной области, либо атрибуты указанного объекта в алфавитном порядке. Это значит, что при вызове кода:

dir(super_object_1) # мы получим список его методов.

Но есть тонкости: Определение в классе метода __dir__(), возвращающего список и имён, позволяет варьировать результат выполнения dir() для экземпляров класса. Для объектов, класс которых не определил __dir__(), функция попытается определить атрибуты по данным __dict__. Возвращаемый список может включать не все атрибуты, особенно в случаях с переопределенным __getattr__().



Комментарии