Вопрос, который вы задали, состоит в том, как остановить hasattr()
, выдавая вам ошибку TypeError. Способ исправить это в сообщении об ошибке: имя атрибута должно быть строкой . Поэтому, если вы сделаете это, вы не получите сообщение об ошибке, но также не получите ожидаемый ответ:
>>> hasattr(list,'test')
False
Это потому, что test
является элементом списка, а не атрибутом списка. Если, с другой стороны, вы делаете это:
>>> hasattr(list,'index')
True
вы увидите, что index
является атрибутом list
, потому что вы можете сделать
>>> list.index(test)
0
Если вы хотите выяснить, находится ли test
в list
, используйте in
:
>>> test in list
True
И, наконец, пожалуйста не вызывайте переменную list
.