Метод get() для проверки атрибутов Python - программирование
Подтвердить что ты не робот

Метод get() для проверки атрибутов Python

Если у меня был словарь dict, и я хотел проверить его на dict['key'], я мог бы сделать это в блоке try (bleh!) или использовать метод get(), с False в качестве значения по умолчанию значение.

Я хотел бы сделать то же самое для object.attribute. То есть у меня уже есть объект для возврата False, если он не был установлен, но тогда это дает мне такие ошибки, как

AttributeError: объект 'bool' не имеет атрибута 'attribute'

4b9b3361

Ответ 1

Более прямой аналог dict.get(key, default) чем hasattr равен getattr.

val = getattr(obj, 'attr_to_check', default_value)

(Где default_value является необязательным, создавая исключение без атрибута, если не найден.)

В вашем примере вы пройдете False.

Ответ 2

Вы имеете в виду hasattr() возможно?

hasattr(object, "attribute name") #Returns True or False

Python.org doc - Встроенные функции - hasattr()

Вы также можете сделать это, что немного более загромождено и не работает для методов.

"attribute" in obj.__dict__

Ответ 3

Для проверки наличия ключа в словаре вы можете использовать in: 'key' in dictionary.

Для проверки атрибутов в объекте используйте функцию hasattr(): hasattr(obj, 'attribute')