内置函数eval及安全处理方式ast.literal_eval

内置函数 eval() 及安全处理方式ast.literal_eval()

1.eval()

功能:将字符串str当成有效的表达式来求值并返回计算结果。

eval()官方文档里面给出来的功能解释是:将字符串string对象转化为有效的表达式参与求值运算返回计算结果

语法上:调用的是:eval(expression,globals=None, locals=None)返回的是计算结果

其中:

expression是一个参与计算的python表达式
​
globals是可选的参数,如果设置属性不为None的话,就必须是dictionary对象了
​
locals也是一个可选的对象,如果设置属性不为None的话,可以是任何map对象了

python是用命名空间来记录变量的轨迹的,命名空间是一个dictionary,键是变量名,值是变量值。

当一行代码要使用变量 x 的值时,Python 会到所有可用的名字空间去查找变量,按照如下顺序:

1)局部名字空间 - 特指当前函数或类的方法。如果函数定义了一个局部变量 x, 或一个参数 x,Python 将使用它,然后停止搜索。

2)全局名字空间 - 特指当前的模块。如果模块定义了一个名为 x 的变量,函数或类,Python 将使用它然后停止搜索。

3)内置名字空间 - 对每个模块都是全局的。作为最后的尝试,Python 将假设 x 是内置函数或变量。

python的全局名字空间存储在一个叫globals()的dict对象中;局部名字空间存储在一个叫locals()的dict对象中。我们可以用print (locals()

你可能感兴趣的:(python,python,eval)