Module (38%)
Section (78%)

Проверка существования атрибута: продолжение

Инструкция 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)

Code

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)

try:
print(example_object.b)
except AttributeError:
pass
{{ dockerServerErrorMsg }} ×
{{ errorMsg }} ×
{{ successMsg }} ×