Как я могу вызвать метод из строки имени в Python?
Я использую API для вызова конкретной информации с веб-сайта. Мне нужно иметь возможность разобрать список, чтобы использовать функции. Пример:
list = ['doThis','doThat']
for item in list:
sampleobject.item
Проблема заключается в том, что, когда я использую это, я получаю сообщение об ошибке, в котором "образец объекта не имеет атрибута" элемент "".
Есть ли способ, которым я могу извлечь цитату из строки, чтобы сделать это?
2 ответа
Пытаться:
methods = ['doThis','doThat']
for method_name in methods:
method = getattr(sampleobject, method_name)
method()
Хотя это было бы проще сделать:
sampleobject.doThis()
sampleobject.doThat()
Ты можешь позвонить getattr(sampleobject, item)
чтобы получить содержимое свойства с именем, равным тому, что хранится в элементе, который является элементом из вашего списка. Я думаю, что проблема не в кавычках вообще. Проблема в том, что синтаксис object.member
означает: оценить свойство с именем member
который хранится в переменной с именем object
, И вы ожидаете, что это будет означать: оценили свойство с именем, хранящимся в member
,