Метод для определения атрибута объекта
Этот запрос ищет метод для проверки присутствия конкретного атрибута в объекте. Рассмотрим следующий пример, где попытка получить доступ к неопределенному свойству вызывает ошибку:
>>> a = SomeClass() >>> a.property Traceback (most recent call last): File "", line 1, in AttributeError: SomeClass instance has no attribute 'property'
Решение: Использование функции hasattr ()
Чтобы решить эту проблему, функция hasattr () может быть использована для Выясните, обладает ли объект желаемый атрибут. Этот подход включает в себя указание объекта и атрибута, которые вы хотите проверить, как показано ниже:
]if hasattr(a, 'property'): a.property
альтернативные соображения
стоит подчеркнуть подход «Просить прощение», предложенный Zweiterlinde, который считается петонической соглашением. Это влечет за собой попытку получить доступ к атрибуту и обрабатывать любое потенциальное исключение, как видно в следующем примере:
try: a.property except AttributeError: # Handle the absence of the 'property' attribute
оптимизации производительности
соответствующий выбор между функцией hasattr () и подходом «Просить прощение» зависит от вероятность доступности атрибутов. Если имущество ожидается присутствовать в большинстве случаев, вызов его напрямую может быть более эффективным. Однако, когда свойство, вероятно, будет часто отсутствовать, hasattr () может быть предпочтительным, чтобы предотвратить чрезмерную обработку исключений.
]Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3