Проверка существования атрибута: продолжение
Инструкция try-except дает Вам возможность избежать проблем с несуществующими свойствами.
Это просто - посмотрите код в редакторе.
Как видите, это действие не очень сложное. По сути, мы только что скрыли проблему.
К счастью, есть еще один способ справиться с этой проблемой.
Python предоставляет функцию, которая может безопасно проверять, содержит ли какой-либо объект/класс указанное свойство. Функция называется hasattr
и ожидает, что ей будут переданы два аргумента:
- класс или проверяемый объект;
- имя свойства, о существовании которого необходимо сообщить (примечание: это должна быть строка, содержащая имя атрибута, а не только имя).
Функция возвращает True или False.
Вот как это можно использовать:
class ExampleClass:
def __init__(self, val):
if val % 2 != 0:
self.a = 1
else:
self.b = 1
example_object = ExampleClass(1)
print(example_object.a)
if hasattr(example_object, 'b'):
print(example_object.b)