Как я могу вызвать метод из строки имени в 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,

Другие вопросы по тегам