Python中eval函数的表达式有哪些
发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,这篇文章主要介绍了Python中eval函数的表达式有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。eval 是干嘛的?解析字符串
千家信息网最后更新 2025年11月09日Python中eval函数的表达式有哪些
这篇文章主要介绍了Python中eval函数的表达式有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
eval 是干嘛的?
解析字符串表达式并执行,并返回一个值
语法格式
eval(expression[, globals[, locals]])
expression:表达式字符串
globals:必须是一个字典
locals:可以是任何 map 对象
最简单的表达式栗子
栗子一
print(eval("123"))print(eval("True"))print(eval("(1,2,3)"))print(eval("[1,2,3]")) # 输出结果123True(1, 2, 3)[1, 2, 3]栗子二
print(eval("1+2")) x = 1print(eval('x+1'))# 输出结果32栗子三
a = 1b = 2print(eval("[a,b]")) # 输出结果[1, 2]带上 globals
# 使用 globalsx = 10g = {"x": 5}print(eval("x+1", g))# 输出结果6在 eval 中提供了globals 参数
eval 的作用域就是 g 指定的这个字典,外面的 x = 10 被屏蔽掉了,eval 是看不见的,所以使用了 x 为 5 的值
x = 10y = 5g = {"x": 5}print(eval("x+1+y", g)) # 输出结果5 print(eval("x+1+y", g)) File "", line 1, in NameError: name 'y' is not defined 因为 global 参数没有 y 变量值,所以报错了
带上 locals
# 使用 localsa = 1g = {"a": 2, "b": 3}l = {"b": 30, "c": 4} print(eval("a+b+c", g, l))# 输出结果36eval 的作用域变成了 globals + locals
locals 作用域优先级会高于 globals
locals 参数里面的值会覆盖 globals 参数里面的值
字符串转字典
# 字符串转字典jsons = "{'a':123,'b':True}"print(type(eval(jsons))) # 输出结果带上 globals
print(eval("{'name':'linux','age':age}", {"age": 123}))# 输出结果{'name': 'linux', 'age': 123}带上 locals
print(eval("{'name':'linux','age':age}", {"age": 123}, {"age": 24})) # 输出结果{'name': 'linux', 'age': 24}内置函数栗子
# 内置函数print(eval("dir()"))print(eval("abs(-10)")) # 输出结果['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'a', 'b', 'g', 'jsons', 'l', 'x', 'y']10报错的栗子
栗子一
print(eval("aa")) # 输出结果 print(eval("aa")) File "", line 1, in NameError: name 'aa' is not defined 栗子二
print(eval("[a,b,c]"))# 输出结果 print(eval("[a,b,c]")) File "", line 1, in NameError: name 'c' is not defined 栗子三
print(eval("if x: print(x)"))# 输出结果 print(eval("if x: print(x)")) File "", line 1 if x: print(x) ^SyntaxError: invalid syntax 因为 eval() 只接受表达式任何其他语句(如if、for、while、import、def、class)都将引发错误
感谢你能够认真阅读完这篇文章,希望小编分享的"Python中eval函数的表达式有哪些"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
结果
输出
栗子
表达式
函数
参数
字典
字符
字符串
篇文章
作用
价值
优先级
兴趣
同时
对象
就是
更多
朋友
格式
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库重要组成部分
计算出生年份数据库
mysql数据库怎么防泄密
php页面查询数据库
新华互联网科技就业前景怎么样
anki记忆卡安卓版海外服务器
lol服务器测试软件
数据库sql嵌套语句
网络技术精讲
计算机三级网络技术官方教材
天元新中大软件显示登录无服务器
会计 数据库 设计方案
数据库用户自定义变量格式
如何关闭数据库占用的端口
社交网络安全治理
阜新app软件开发费用
广西互联网养老软件开发
软件开发专业名称是什么
网络验证 数据库
读计算机网络技术哪间学校好
信息网络安全预警
计算机考研网络安全专业
金融估值软件开发公司
无法还原数据库
bim数据库产品模型
东莞盲盒软件开发订制
劲舞团2为什么登录不了服务器
有java软件开发研究生吗
一种是系统数据库
哮喘数据库挖掘