В программировании, под анализом объекта понимается возможность определения его типа во время исполнения программы. Это одна из сильных сторон Python. Все в Python является объектами и мы можем их исследовать. В языке есть несколько встроенных функций и модулей для этой цели.
В этом параграфе мы познакомимся с функцией dir
и как она помогает нам в анализе объектов.
Это одна из важнейших функций для этой задачи. Она возвращает список атрибутов и методов объекта. Вот пример:
my_list = [1, 2, 3]dir(my_list)# Вывод: ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__',# '__delslice__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__',# '__getitem__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__',# '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__',# '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__',# '__setattr__', '__setitem__', '__setslice__', '__sizeof__', '__str__',# '__subclasshook__', 'append', 'count', 'extend', 'index', 'insert', 'pop',# 'remove', 'reverse', 'sort']
Мы получили все методы списка. Это может быть полезно, если вы не можете вспомнить имя конкретного метода. Если мы запустим dir()
без аргументов, то она вернет нам имена всех объектов в текущей области видимости.
Функция type
возвращает тип объекта. Пример:
print(type(''))# Вывод: <type 'str'>print(type([]))# Вывод: <type 'list'>print(type({}))# Вывод: <type 'dict'>print(type(dict))# Вывод: <type 'type'>print(type(3))# Вывод: <type 'int'>
id
возвращает уникальный идентификатор объекта. К примеру:
name = "Yasoob"print(id(name))# Вывод: 139972439030304
Модуль inspect
также предоставляет несколько полезных функций для получения информации об объектах. Например, вы можете проверить члены объекта, запустив:
import inspectprint(inspect.getmembers(str))# Вывод: [('__add__', <slot wrapper '__add__' of ... ...
Существуют и другие методы анализа объектов в Python. Вы можете изучить их отдельно при желании.