Прибудете (), как метод для проверки атрибутов Python

голоса
53

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

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

AttributeError: «BOOL» объект не имеет атрибута «атрибут»

Задан 10/12/2008 в 10:49
источник пользователем
На других языках...                            


3 ответов

голоса
84

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

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

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

Для примера, вы бы пройти False.

Ответил 10/12/2008 в 15:27
источник пользователем

голоса
16

Вы имеете в виду , hasattr()может быть?

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

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

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

"attribute" in obj.__dict__
Ответил 10/12/2008 в 10:59
источник пользователем

голоса
6

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

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

Ответил 10/12/2008 в 11:01
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more