文字列をPythonで演算子に変換できますか? 私は理想的には、次のようになり機能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
私はキーが文字列や値はoperatorモジュールの関数である辞書を作ることができます。 私は少しの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
?
管理可能な一連の演算子を使用している限り、辞書は正常です。 –