07 Июл 2023
2 мин
373

Работа с атрибутами объекта в Python

В работе с объектно-ориентированным программированием в Python возникают ситуации, когда необходимо получить список всех атрибутов, которые присутствуют

Содержание

В работе с объектно-ориентированным программированием в 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 предоставляет удобные инструменты для работы с атрибутами объектов, позволяющие упростить и ускорить написание кода.

Содержание

Добавить комментарий

Определи профессию по рисунку