Я пытаюсь использовать getattr() для Python для извлечения данных из ряда объектов, которые я получил из различных API, которые я не контролирую. Моя идея состояла в том, чтобы просмотреть список гетрогенных объектов и попытаться получить их(), пока я не вытащу все, что мне нужно.Элемент или функция Python getattr()?
Так что я делаю один из них:
if hasattr(o, required_field):
value = getattr(o, required_field)
result.append([required_field, value])
print 'found field', field, 'for value', value
Моя проблема иногда объекты я имею дело с object.data есть() и sometiems object.data вытащить вещи из. Иногда эти объекты на самом деле являются генераторами.
Так раз в то время я хотел бы получить что-то вроде этого:
found field ValueOfRisk for value
CellBM:<Instrument:/limbo/WLA_YdgjTdK1XA2qOlm8cQ==>.ValueOfRisk>
Вопрос: есть ли способ, что я могу сказать «получить доступ к элементу данных, когда это элемент данных, или вызвать функцию, когда это функция «извлечь выгоду из этих вещей? Похоже, это должно быть легко с Python, но я не могу его найти.
Возможно, функция 'callable' является тем, что вы ищете? Он скажет вам, можно ли вызывать атрибут. –
@NolenRoyalty Не может считаться устаревшим? Редактировать: Не думаю. Увидел сообщение на этот счет, но официальная документация 2.7 не говорит об этом. –
Спасибо за хорошие и быстрые ответы, ребята, я узнал из ваших ответов и получил работу. Может только выбрать один «правильный», хотя :( – MrFox