Попробуйте hasattr()
:
if hasattr(a, 'property'):
a.property
РЕДАКТИРОВАТЬ: См. ответ zweiterlinde ниже, который предлагает хороший совет о том, как просить прощения! Очень питонический подход!
Общая практика в python заключается в том, что, если свойство, скорее всего, присутствует там большую часть времени, просто вызовите его и либо разрешите распространению исключения, либо перехватите его с помощью блока try / исключением. Это, вероятно, будет быстрее, чем hasattr
. Если это свойство, скорее всего, отсутствует в большинстве случаев, или вы не уверены, использование hasattr
, вероятно, будет быстрее, чем повторное попадание в блок исключения.