Возможно, я делаю все это совершенно неправильно, но я программист Google Python, так что вот что.
У меня есть созданный класс с именем "create", который создает объект.Свойства этого объекта являются экземплярами другого класса (настроек)
class setting:
def __init__(self,name,value,IsRequired):
self.name=name
self.IsRequired=IsRequired
self.value=value
class create:
filter=setting("filter","filter_name",True)
consumer=setting("consumer","","True")
def __init__(self, name):
self.name=name
>>>a=create("test")
>>>a.name
'test'
>>> a.filter.IsRequired
True
>>> a.filter.value
'filter_name'
Это позволяет мне вызывать сложные свойства каждого из моих параметров настройки объекта в отдельности.Например, посмотрите, требуется ли настройка (фильтр) для выполнения, проверив a.filter.IsRequired
Для настройки параметров, в частности, «значение», я беру ввод от пользователя.
Я могу сослатьсяобщий объект со строкой с помощью eval.
>>>one="a"
>>>eval(one).filter.IsRequired
True
>>>eval(one).filter.value="NewValue"
>>>a.filter.value
'NewValue'
Теперь проблема.Я пытаюсь изменить «фильтр» на основе предоставленного пользователем ввода.
var1="a"
var2="filter"
>>> eval(var1).eval(var2).value
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: create instance has no attribute 'eval'
Как я могу назначить пользовательскую переменную для «значения» «фильтра» в этом примере?