定义变量的约束

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.

时才有效