Python用eval执行海象运算符时为什么需要带上括号?

本文探讨了Python中eval()函数的一个奇特现象:在使用eval()时,赋值表达式temp:=2无法直接执行,但加了一个括号后,(temp:=2)却能正常工作。这涉及到了Python的语法解析和eval()的内部机制。通过这个例子,读者可以深入了解Python的语法细节和eval()的使用技巧。
摘要由CSDN通过智能技术生成
print(eval("temp:=2"))

执行结果(Python3.8及以上):
在这里插入图片描述
我们知道单独运行print(temp:=2)是没有问题的,但是加上eval就认不出来了。

更奇怪的是如果内层加上一个括号就恢复正常了:

print(eval("(temp:=2)"))

执行结果:
2

一个“可有可无”的括号竟然有这么大的影响,这似乎涉及到eval的机制,我还没有弄明白,求大神解答。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值