python将字符转为运算符_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
我可以制作⼀个字典,其中键是字符串,值是运算符模块的功能.
我将不得不稍微更改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
这意味着我必须制作这本词典,但这真的有必要吗?
解决⽅法:
您可以使⽤eval动态地构建⼀段Python代码并执⾏它,但是除此之外,没有真正的选择.但是,基于字典的解决⽅案更加优雅和安全.
除此之外,真的那么糟糕吗?为什么不缩短⼀点……
return operator_dict[operator_string](left_value, right_value)
python代码转换标签:python,function,string

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。