Intermediate Python
  • Introduction
  • Средства разработки
    • Виртуальное окружение
    • Отладка
    • Анализ объекта
  • Синтаксис
    • Исключения
    • for - else
    • Тернарные операторы
    • global и return
    • Функция open
    • *args и **kwargs
    • Менеджеры контекста
  • Функциональное программирование
    • enumerate
    • Анонимные функции
    • Структура данных set
    • map и filter
    • Абстракция списков
  • Структуры данных
    • Генераторы
    • Корутины
    • Классы
  • Типы данных
    • collections
    • Изменяемость
    • Магия __slots__
  • Декораторы
    • Что такое декоратор?
    • Кэширование функций
  • Разное
    • Однострочники
    • Python C расширения
    • Разработка под Python 2+3
Powered by GitBook
On this page
  • dir
  • type и id
  • Модуль inspect
  1. Средства разработки

Анализ объекта

В программировании, под анализом объекта понимается возможность определения его типа во время исполнения программы. Это одна из сильных сторон Python. Все в Python является объектами и мы можем их исследовать. В языке есть несколько встроенных функций и модулей для этой цели.

dir

В этом параграфе мы познакомимся с функцией 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 и id

Функция 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

Модуль inspect также предоставляет несколько полезных функций для получения информации об объектах. Например, вы можете проверить члены объекта, запустив:

import inspect
print(inspect.getmembers(str))
# Вывод: [('__add__', <slot wrapper '__add__' of ... ...

Существуют и другие методы анализа объектов в Python. Вы можете изучить их отдельно при желании.

PreviousОтладкаNextИсключения

Last updated 6 years ago