【问题标题】:Transform string into IF argument将字符串转换为 IF 参数
【发布时间】:2018-12-04 18:01:55
【问题描述】:

如何在 Python 中将字符串转换为逻辑参数,作为if() 函数的参数插入?

例如:

string = "(A != 0) and (B >= 5)"

如何将这个字符串转换成它所代表的逻辑,以便插入到if() 函数中?

【问题讨论】:

    标签: string python-3.x if-statement logic logical-operators


    【解决方案1】:

    您可以使用 eval 函数来评估字符串:

    string = "(A != 0) and (B >= 5)"
    if eval(string):
        doSomething()
    

    【讨论】:

    • 值得注意的是,根据您的使用情况,如果该字符串是用户提供的您已准备好进行注入攻击,则 eval 方法会导致潜在的安全问题。
    • 你的答案仍然是正确的,我只是评估字符串首先验证一个简单的条件结构 - 可能只允许数字、评估器 (=-+{}[]) 和单个字母 (不是文字)作为首发
    • 如果字符之间有任意空格,或者字符之间只能有 1 个空格,这会很好吗?
    • 您可以有任意数量的空格,因为函数 eval 顾名思义,将计算字符串中包含的表达式。
    猜你喜欢
    • 2016-07-01
    • 2011-12-13
    • 2020-06-23
    • 2014-10-21
    • 1970-01-01
    • 1970-01-01
    • 2019-05-06
    • 2014-06-24
    • 1970-01-01
    相关资源
    最近更新 更多