是否有任何规范的方法来定义变量的约束?具体来说,是否有实现方法isgood
:
>>> isgood({'a': 1, 'b': 3}, '2*a != b')
True
>>> isgood({'a': 1, 'b': 2}, '2*a != b')
False
>>> isgood({'a': 1, 'b': 3}, '2*a != b and a + 1 == 3')
False
我的主要问题是如何定义约束?约束的类型是什么?在示例中,我将其定义为字符串列表,但有什么方法可以指定值的要求吗?
答案 0 :(得分:1)
您可以使用内置的 Python 函数 eval()
来执行此操作。例如,
def isgood(mydict: dict, constraints) -> bool:
"""It checks if the dict fits the constraints"""
for k, v in mydict.items():
constraints = constraints.replace(k, "({})".format(v))
return eval(constraints)
注意 constraints
必须是 Python 表达式。也就是说,正如 mkrieger1 在评论中指出的那样,上述代码仅在您使用 2*a
而不是 2a
时才有效。