Python 中的 eval() 函数详解

安全使用指南 · 常见误区 · 替代方案

什么是 eval()?

eval() 是 Python 内置函数,用于将字符串作为 Python 表达式进行求值并返回结果。 它可以动态执行代码,但也存在严重的安全隐患。

result = eval("2 + 3 * 4")  # 返回 14

基本语法

eval(expression, globals=None, locals=None)

使用示例

# 示例1:简单计算
print(eval("10 * (2 + 3)"))  # 输出: 50

# 示例2:结合变量
x = 5
print(eval("x ** 2"))        # 输出: 25

# 示例3:限制作用域(更安全)
safe_dict = {"__builtins__": {}}
print(eval("2 + 3", safe_dict))  # 输出: 5

⚠️ 安全警告

永远不要对不可信的输入使用 eval() 攻击者可通过构造恶意字符串执行任意代码,例如:

eval("__import__('os').system('rm -rf /')")  # 危险!

即使限制了 globalslocals,仍可能被绕过。

安全替代方案

import ast
# 安全地解析字面量
data = ast.literal_eval("[1, 2, {'a': 3}]")

互动演示(仅限安全表达式)

输入一个简单的数学表达式(如 2 + 3 * 4),点击按钮查看结果:

注意:本演示仅用于教学,实际项目中请避免使用 eval 处理用户输入。

台版iPhone大陆能用吗?全面解析与使用指南 complement 和 compliment 的区别-英语易混淆词详解 Python shape函数详解-NumPy数组形状操作指南 新犁地|探索土地的新生与希望 Python 安装 pip 命令详解-快速上手指南 港版 iPhone 17 Pro Max 最新价格与购买指南-2026年更新 iPhone 17 Pro 对比评测|全面对比与深度分析 Python运行指南-快速上手与在线体验 Python hex() 函数详解-十六进制转换指南 Python datetime 库详解-时间与日期处理利器 始祖鸟 Incendo Hoody 防风连帽夹克-轻量透气 高性能户外装备 Confused With:理解混淆与相似概念的区别 Python手机版IDLE-在手机上轻松编写和运行Python代码 Python怎么更新pip?详细教程与常见问题解答 Moncheri的隐喻意义:探索名字背后的象征与文化内涵 iPhone有粉色吗?全面解析苹果手机的粉色机型-专题页面 iPhone手机发烫是什么原因?全面解析与解决方法 This Is a Big Elephant-探索大象的奇妙世界 SHEIN7LONGWEN介绍-快时尚全球领先品牌 pioneer读音-英文单词发音、释义与例句详解 iPhone 17 标准版-全新升级,定义未来 Brough Superior:传奇摩托车品牌复兴之路 Pioneer电视怎么用U盘-完整使用指南 Champion My Way-走出属于你的冠军之路 澳洲版 iPhone 17-全新发布,专为澳大利亚用户打造 Pionneer加速器-高速稳定的游戏与网络加速服务 在线学习 Python-免费入门到进阶教程|OnlinePython CenCorp分板机-高精度PCB分板解决方案专家 Emotion变形:探索情绪的多维表达与演变 Like Many People — 探索我们共同的生活体验 Python strip() 函数详解-字符串去空格与指定字符 Pioneer 音箱使用说明-78TP操作指南与常见问题解答 Pioneer加速器安全吗?全面评测与使用建议 Python 编码详解:字符编码、常见问题与最佳实践 香港iPhone抢购攻略|最新iPhone发售时间、渠道与技巧 iPhone 17 橙色寓意解析:活力、创新与未来科技的象征 Python中while循环的用法详解-编程入门指南 Shein怎么样?全面评测与购物指南-真实体验分享 Python语法入门指南-快速掌握基础与核心语法 Python左轮:探索Python的趣味编程世界 Web Python 开发指南-使用 Python 构建现代 Web 应用 大象的隐喻:智慧、记忆与力量的象征 蒙奇奇 Monchhichi 78TP专题页-可爱玩偶与童年回忆 Python中sep参数的用法详解-print函数分隔符指南 Pixelmon重铸 Wiki-宝可梦与Minecraft的完美融合 Python Celery 入门与实战指南-异步任务队列最佳实践 Shopee店配尺寸指南-包裹尺寸限制与包装建议 iPhone 在台灣|最新機型、價格與購買指南 海南iPhone免税店7LONGWEN商城-免税购买最新款iPhone 港版 iPhone 17 Pro 价格|最新报价、购买指南与对比分析 iPhone 17 Pro 提前发货!抢先体验最新苹果旗舰 Sephirah翻译-探索卡巴拉生命之树的十重智慧 Python 3 入门与进阶指南-零基础学习 Python 编程语言 iPhone 11恢复出厂设置在哪里?详细操作指南 Pandas Series 入门指南-数据分析基础工具详解 犁耕:传统与现代的农耕艺术|Ploughing专题 Precision-精准之道,成就卓越 做这些事真愉快-Pleasant to Do Something Python IDE推荐-高效开发工具精选 美版 iPhone 11 国内能用吗?全面解析与使用指南 Pixelmon 是什么意思?全面解析宝可梦与 Minecraft 的奇妙融合 Python中Tkinter用法详解-快速入门GUI编程 To Do Something-高效任务管理与生活规划指南 The Thirsty Pigeon – A Tale of Survival and Hope Python 自带 IDLE 入门指南-轻量级开发环境介绍 Professional下载-安全高速的专业软件资源站 任晓庆与SHEIN:中国快时尚的崛起之路 iPhone Air 电池容量是多少毫安?全面解析与对比 Can You Say That Again, Please? — 理解与沟通的艺术 Nothin' on Me 歌词中英文对照-Bruno Major 热门歌曲解析 When It Comes To 造句大全-实用英语表达学习 Python怎么导入time模块-入门指南与实用示例 Pioneer电视机怎么开?详细开机指南与常见问题解答 他对我真的很好-温暖人心的日常故事 Bon Appétit-探索全球美味,享受每一口 Oni Chichi 2-探索奇幻与亲情交织的冒险世界 iPhone 17 Pro Max 多少钱?2026最新价格、配置与购买指南 Python 的 pip 怎么用?新手入门指南 iPhone序列号J开头代表哪里生产?全面解析苹果产地编码 PythonTip7LONGWEN-学Python,就上PythonTip Shein投资人专题-全球快时尚巨头背后的资本力量 用户投诉与建议中心-倾听您的声音 Python shape函数详解-NumPy数组形状操作指南 iPhone 香港官網預約|Apple (香港) Champion 与 Winner 的区别:含义、用法与例句详解 pip在Python的哪个位置?全面解析pip安装路径与使用方法 Be Nice to Me – 传递善意,温暖彼此 善待他人:让世界更温暖的小行动-专题页面 Pioneer电视设置信号源-详细图文教程|78TP指南 Shein创始人许仰天:从程序员到快时尚帝国掌舵人 iPhone历代型号大全|从初代到最新款全面回顾 台湾版 iPhone 能在大陆用吗?全面解析与使用指南 像他人一样生活:理解、共情与联结|Like Other People 渗透测试(Penetration Testing)入门指南|网络安全专题 Python import time 详解:掌握时间模块的使用方法 Pioneer-探索未知,引领未来 iPhone 17 Pro 1TB 最新价格及配置详情-78TP首发信息 iPhone 17是哪里产的?最新产地信息与供应链解析 It Is Pleasant to Do – 发现生活中的愉悦小事 Python Online-在线学习与运行 Python 代码