Уведомления

Группа в Telegram: @pythonsu

#1 Май 16, 2012 18:28:04

Volk
От: Киев
Зарегистрирован: 2011-11-10
Сообщения: 24
Репутация: +  0  -
Профиль   Отправить e-mail  

Генерация функции без eval

Нужно сгенерить функцию, которая зависит от выражения, в котором используются параметры функции.

def get_spec_func(query):
    expression = filter_to_spec(json.loads(query))
    def spec_func(attrs):
        attrs = dict(attrs)
        return eval(expression)
    return spec_func

query - это типа набор условий и в этих условиях нужны значения параметров attrs функции spec_func
Можна как то решить без eval?
Если передать в filter_to_spec параметр attrs и вызвать expression = filter_to_spec(attrs, json.loads(query)) в spec_func, то оно ж будет выполняться при каждом вызове spec_func.
Можна ли как-то типа сделать блок кода с expression и подменить ему локальную переменную attrs?



Офлайн

#2 Май 17, 2012 04:45:45

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10020
Репутация: +  857  -
Профиль   Отправить e-mail  

Генерация функции без eval

приведи конкретный пример использования
конкретный пример исходных данных
конкретный пример результата



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version