Не делай этого.Процитируем бесценные Грег Хьюгилл ,
"Если вы когда-либо используете цитируемые имена для ссылки на переменные, обычно есть лучший способ сделать то, что вы пытаетесь сделать. "
[Здесь вы на один уровень выше и используете строковую переменную для имени, но это та же основная проблема.] Или, как С. Лотт продолжил в том же потоке:
"90% времени, вы должны использовать словарь. Остальные 10% времени, вам нужно полностью прекратить то, что вы делаете."
Если вы используете содержимое stringRESULTS в качестве указателя на некоторый объект fred
, который вы хотите setattr
, то эти объекты, на которые вы хотите нацелиться, должны уже где-то существовать, а словарь являетсяестественная структура данных для их хранения.Фактически, в зависимости от вашего варианта использования, вы можете использовать пары ключ / значение словаря вместо атрибутов.
Итак, моя версия того, что (я предполагаю) вы пытаетесь сделать, вероятно, будет выглядеть как
d[stringRESULTS].b = b
или
d[stringRESULTS]["b"] = b
в зависимости от того,Я хотел / нуждался в работе с экземпляром объекта или словаря было бы достаточно.
(PS относительно немногие подписываются на тег python-3.x. Обычно вы получаете больше внимания, добавляя чистый 'python').'tag также.)