Как проверить, является ли функция атрибутом списка? - PullRequest
0 голосов
/ 05 мая 2018

Итак, я пытаюсь проверить, является ли функция атрибутом списка. К сожалению, я не могу найти способ сделать это. Я попробовал этот код:

def test():
    return "test"

list = [test]

if hasattr(list, test):
    print("yes")
else:
    print("no")

но это дало мне эту ошибку:

Traceback (most recent call last):
  File "test.py", line 6, in <module>
    if hasattr(list, test):
TypeError: hasattr(): attribute name must be string

Я хотел бы знать рабочий путь, поэтому, если вы знаете, как, пожалуйста, скажите мне.

1 Ответ

0 голосов
/ 05 мая 2018

Вопрос, который вы задали, состоит в том, как остановить 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.

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