a = SomeClass() if hasattr(a, 'property'): a.property
Это единственный способ проверить, есть ли недвижимость или нет? Есть ли другой способ сделать то же самое?
Вы можете просто использовать свойство и перехватить исключение AttributeError, если оно не существует.Но использование hasattr также является разумным подходом.
AttributeError
hasattr
Потенциальная проблема с отловом исключения состоит в том, что вы не можете легко отличить атрибут, который не существует, и он существует, но когда вы вызываете его, запускается некоторый коди , что код вызывает AttributeError (возможно, из-за ошибки в коде).
Вы также можете обратиться к этим связанным вопросам для получения дополнительной информации по этой теме:
Ну, вы можете просто попытаться получить к нему доступ и поймать AttributeError, если его не существует.
try: a.foo except AttributeError: ...
Вы также можете использовать:
if 'property' in a.__dict__: a.property