Python中eval函数的作用

eval函数介绍

计算指定表达式的值。换句话说,它想要执行的Python代码只能是单个表达式(请注意,val不支持任何形式的赋值),而不是复杂的代码逻辑。

[En]

Evaluates the value of the specified expression. In other words, the Python code it wants to execute can only be a single expression (note that eval does not support any form of assignment), not complex code logic.

eval(source, globals=None, locals=None, /)

参数说明:

[En]

Parameter description:

  • source:必选参数,可以是字符串,也可以是一个任意对象实例。如果它是一个字符串,它会被当作一个(使用globals和locals参数作为全局和本地命名空间的)Python表达式进行分析和解释
  • globals:可选参数,表示全局命名空间(存放全局变量),如果被提供,则必须是一个字典对象
  • locals:可选参数,表示全局命名空间(存放局部变量),如果被提供,可以是任何映射对象。如果参数被忽略,那么它将会取与globals相同的值
    全局命名空间:如果同时忽略全局变量和局部变量,则它们将在调用val()函数的上下文中获取全局和局部命名空间
    [En]

    Global namespace: if both globals and locals are ignored, they will take the global and local namespaces in the context in which the eval () function is called

返回值:

[En]

Return value:

  • 如果源是对象,并且在创建代码对象时,COMIE函数的模式参数为‘exec’,则val()函数的返回值为NONE
    [En]

    * if source is an object and when the code object is created, the mode parameter of the complie function is’ exec’, then the return value of the eval () function is None

  • 如果SOURCE是OUTPUT语句,如print(),则val()返回结果为NONE
    [En]

    * if source is an output statement, such as print (), eval () returns the result as None

  • 除上述两种情况外,源表达式的结果为val()函数的返回值
    [En]

    * except for the above two cases, the result of the source expression is the return value of the eval () function

x = 10def func():    y = 20   #局部变量y    a = eval("x+y")    print("a:",a)      #x没有就调用全局变量    b = eval("x+y",{"x":1,"y":2})     #定义局部变量,优先调用    print("b:",b)    c = eval("x+y",{"x":1,"y":2},{"y":3,"z":4})    print("c:",c)    d = eval("print(x,y)")    print("d:",d)   #对于变量d,因为print()函数不是一个计算表达式,因此没有返回值func()

输出结果:

[En]

Output result:

a: 30
b: 3
c: 4
10 20
d: None
str1 = "3.14"
print(type(eval(str1)))

str2 = "[10, 20, 30]"
strl = eval(str2)
print(type(strl))

str3 = "5"
print(type(eval(str3)))

输出结果:

[En]

Output result:

<class 'float'>
<class 'list'>
<class 'int'>
</class></class></class>

Original: https://blog.csdn.net/sinat_34241861/article/details/122182252
Author: 小小平不平凡
Title: Python中eval函数的作用

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/6410/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

发表回复

登录后才能评论
免费咨询
免费咨询
扫码关注
扫码关注
联系站长

站长Johngo!

大数据和算法重度研究者!

持续产出大数据、算法、LeetCode干货,以及业界好资源!

2022012703491714

微信来撩,免费咨询:xiaozhu_tec

分享本页
返回顶部