python
December 6, 2022

Как изучать объекты и библиотеки в Python без Интернета

В Python имеются простые способы погружения в неизвестные свойства объекта или возможности библиотеки, которые работают и без Интернета, а в некоторых случаях эффективнее его.
Допустим, вы ищете способ подсчета логарифма в NumPy, но не знаете точное название инструмента. Воспользуйтесь встроенной функцией dir, которая отображает список методов и свойств объекта (включая модули), переданного ей в качестве параметра. Соответственно, можно вывести перечень, имеющий в названии строку 'log':

import numpy as np

[it for it in dir(np) if 'log' in it]

Далее можно посмотреть описание функции, поместив после ее названия символ вопроса:

np.log2?

Помимо поиска некой функции в модуле типичной является ситуация с поиском нужного свойства экземпляра класса. Иногда для этого набирают точку и ждут выпадающее меню со списком. Однако проще воспользоваться все той же функцией dir.

Так на днях я работал с объектом DatetimeIndex и, догадываясь, что его можно просто преобразовать в серию, нашел нужный метод:

days = pd.date_range(start='2019-01-01', end='2019-01-11', freq='D')
type(days)
[it for it in dir(days) if 'ser' in it]

Последний именно тот, который и был нужен.

Также для характеристики свойств объекта полезен служебный словарь __dict__, в котором хранятся атрибуты и их значения. Исследуем с его помощью переменную days:

days.__dict__

Таким образом, не забывайте использовать функцию dir и атрибут __dict__ и вы непременно ускорите процесс исследования объектов.