В работе с объектно-ориентированным программированием в Python возникают ситуации, когда необходимо получить список всех атрибутов, которые присутствуют у определенного объекта. Для примера, рассмотрим ситуацию, когда создается класс с некоторыми атрибутами:
class MyClass(): def __init__(self, number): self.multi = int(number) * 2 self.str = str(number) object = MyClass(2)
В данном случае, у объекта object
класса MyClass
есть два атрибута: multi
и str
. Теперь необходимо получить имена этих атрибутов.
Python предоставляет встроенную функцию dir()
, которая возвращает список имён, определённых в текущей области видимости. Если ей передать в качестве аргумента объект, она вернёт список его атрибутов. Пример использования:
print(dir(object))
Но стоит отметить, что вместе с атрибутами объекта, dir()
возвращает также и все методы этого объекта, включая служебные методы, которые начинаются и заканчиваются двойным подчеркиванием.
Если необходимо получить только пользовательские атрибуты, то можно воспользоваться функцией vars()
. Она возвращает словарь, где ключами являются имена атрибутов, а значениями — их значения. Пример использования:
print(vars(object))
В результате будет получен словарь вида: {'multi': 4, 'str': '2'}
. Чтобы получить только имена атрибутов, достаточно обратиться к ключам словаря:
print(vars(object).keys())
В результате будет получен список имен атрибутов: ['multi', 'str']
.
Таким образом, Python предоставляет удобные инструменты для работы с атрибутами объектов, позволяющие упростить и ускорить написание кода.
Добавить комментарий