定义变量的约束
Define constraints of variables
是否有任何规范的方法来定义变量的约束?具体来说,有没有好的方法来实现方法 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
我的主要问题是如何定义约束?约束的类型是什么?在示例中,我将其定义为字符串列表,但是有什么方法可以指定值的要求吗?
您可以使用内置 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
.
时才有效
是否有任何规范的方法来定义变量的约束?具体来说,有没有好的方法来实现方法 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
我的主要问题是如何定义约束?约束的类型是什么?在示例中,我将其定义为字符串列表,但是有什么方法可以指定值的要求吗?
您可以使用内置 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
.