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


79

Якби у мене був словник, dictі я хотів перевірити, чи dict['key']міг би я це зробити в tryблоці (bleh!), Або скористатися get()методом із Falseзначенням за замовчуванням.

Я хотів би зробити те саме object.attribute. Тобто, у мене вже є об’єкт для повернення, Falseякщо він не встановлений, але тоді це видає мені такі помилки

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

Відповіді:


125

Більш прямий аналог, dict.get(key, default)ніж hasattrє getattr.

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

(Де default_valueнеобов’язково, вказуючи виняток для жодного атрибута, якщо його не знайти.)

Для вашого прикладу ви б пройшли False.



7

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

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


Єдина відповідь, що стосується того факту, що обидва варіанти перевірки дикту, представлені ОП, є Бле!
Божевільний фізик
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.