Как узнать, есть ли у объекта атрибут в Python - PullRequest
1369 голосов
/ 04 марта 2009

Есть ли в Python способ определить, имеет ли объект какой-либо атрибут? Например:

>>> a = SomeClass()
>>> a.someProperty = value
>>> a.property
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: SomeClass instance has no attribute 'property'

Как определить, есть ли у a атрибут property перед его использованием?

Ответы [ 12 ]

0 голосов
/ 13 марта 2019

Это супер просто, просто используйте dir( объект )
Будет возвращен список всех доступных функций и атрибутов объекта.

0 голосов
/ 09 марта 2019

Вы можете проверить, содержит ли object атрибут, используя hasattr встроенный метод.

Например, если ваш объект a и вы хотите проверить атрибут stuff

>>> class a:
...     stuff = "something"
... 
>>> hasattr(a,'stuff')
True
>>> hasattr(a,'other_stuff')
False

Сама сигнатура метода hasattr(object, name) -> bool, что означает, что если object имеет атрибут , который передается второму аргументу в hasattr, то это дает логическое значение True или False в зависимости от наличия атрибута name в объекте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...