如何在python中将字符串转换为源代码?

时间:2017-05-09 19:37:15

标签: python string command eval

如你所见,ifinner是一个字符串,所以如果我只是写下if,总是会是真的。我能做些什么,将它与源代码相结合?

    x=2
    ifinner = "x==3"
    if ifinner:
        print("Yeah")
    else:
        print("It works!")

3 个答案:

答案 0 :(得分:3)

您可以使用eval()函数来评估Python源代码。

引用文档:

  

eval(表达式,全局变量=无,本地人=无)

     

参数是一个字符串,可选 globals locals 。如果提供,globals必须是字典。如果提供, locals 可以是任何映射对象。

答案 1 :(得分:1)

试试这个:

<?xml version="1.0"?>
<data>
    <group>
        <country name="Liechtenstein">
            <rank>1</rank>
            <year>2008</year>
        </country>
        <country name="Singapore">
            <rank>4</rank>
            <year>2011</year>
        </country>
    </group>
    <group>
        <country name="Panama">
            <rank>68</rank>
            <year>2011</year>
        </country>
    </group>
</data>

有关详细信息,请阅读python 2.x / 3.x中的eval和exec文档。 之前曾问过类似的问题。这是link

答案 2 :(得分:0)

我认为eval不适用于这样的字符串

str_ = "import matplotlib"

在这种情况下,您可能必须打开一个单独的文件,编写字符串,然后执行它。但是