Функция hasattr() в Python
avatar
7 | (offline)
❤️‍🔥Notehunter Developer
Добавлено:
Категория: Основы «Python»
Комментариев: 0

hasattr() — это встроенная функция, используется для проверки, существует ли определенный атрибут у объекта, или нет и возвращает логическое значение. 

Мы можем легко реализовать эту функцию или использовать команду try-expect, но рекомендуется использовать эту функцию, чтобы иметь чистый код.

Синтаксис функции:

hasattr(object, name)

Пояснение:

  • Объектом может быть любой object, атрибут которого будет проверяться. 
  • Name должно быть строкой и именем проверяемого атрибута. Внутри эта функция вызывает getattr(object, name) и возвращает True. Если при вызове функции getattr() произошла ошибка AttributeError, возвращается False. В противном случае возвращается True.

Давайте рассмотрим пример:

class Person:

    def __init__(self, age, name):
        self.age = age
        self.name = name


person = Person(23, 'Vladislav')

if hasattr(person, 'name'):
    print(getattr(person, 'name'))

Сравнение hasattr() и in 

Преимущества hasattr() можно увидеть, когда значение атрибута определяется динамически, например, когда оно получается из пользовательского ввода. 

Пример с вводом на проверку атрибута:

class Person:

    def __init__(self, age, name):
        self.age = age
        self.name = name


person = Person(23, 'Vladislav')

attr = input('\nPlease enter Person attribute to get details:\n')

if hasattr(person, attr):
    print(attr, '=', getattr(person, attr))
else:
    print('invalid person attribute')

Результат:

Please enter Person attribute to get details:
age
age = 23

Please enter Person attribute to get details:
name
name = Vladislav

Please enter Person attribute to get details:
test
invalid person attribute
Теги записи: Python, Основы Python, hasattr(),
Комментарии к статье 0
Комментариев нет
Форма добавления комментария (необходима регистрация)