Возможно ли преобразовать строку в оператор в python?Я хотел бы передать условие функции
В идеале это выглядело бы так:
def foo(self, attribute, operator_string, right_value):
left_value = getattr(self, attribute)
if left_value get_operator(operator_string) right_value:
return True
else:
return False
bar.x = 10
bar.foo('x', '>', 10)
[out] False
bar.foo('x', '>=', 10)
[out] True
Я мог бы создать словарь, в котором ключи - это строки, а значения - функции модуля оператора.Мне бы пришлось немного изменить определение foo:
operator_dict = {'>', operator.lt,
'>=', operator.le}
def foo(self, attribute, operator_string, right_value):
left_value = getattr(self, attribute)
operator_func = operator_dict[operator_string]
if operator_func(left_value, right_value):
return True
else:
return False
Это значит, что я должен сделать этот словарь, но действительно ли это необходимо?