Python 表达式计算详解(eval)

本文详细介绍了Python内置函数eval的语法、参数使用示例,包括仅expression、指定globals和locals的情况,以帮助理解其在不同作用域内的行为。

1 语法

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

# 参数说明
expression: 表达式的'字符串'
globals: 全局变量, '字典格式'
locals: 局部变量, '字典格式'

2 参数使用示例

2.1 仅 expression

  • 忽略后两个参数的情况下,仅在 当前的作用域 执行
a = 1

print(eval('a + 1'))  # 2
# print(eval(str(1 + 1)))

2.2 指定 globals

  • 指定 globals 时,在 指定的 globals 作用域 内执行
a = 1
g = {'a': 2}
print(eval('a + 1', g))  # 3

2.3 指定 locals

  • 指定 locals 时,在 指定的 locals作用域 内执行
a = 1
b = 2
c = 3

g = {'a': 10, 'b': 20}
l = {'b': 200, 'c': 300}

print(eval('a+b+c', g, l))  # 510
# 计算过程:
# 先计算 l 中的 b+c=500
# 再计算 g 中的 a+500=510
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鱼丸丶粗面

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值