是否可以在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
這意味着我必須讓這本詞典,但是否真的有必要嗎?
只要你有一個可管理的操作集,一個字典就好了。 –