当我从文档中读到时,eval()函数用于评估Expression。
但是默认情况下Python正在这样做。我的意思是
Python 3.6.2 (v3.6.2:5fd33b5, Jul 8 2017, 04:57:36) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> __name__
'__main__'
>>> del __name__
>>> __name__
'builtins'
>>> globals()[__name__]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'builtins'
所以当我输入>>> x=10
>>> x+2
12
>>> eval('x+2')
12
>>>
python评估/解释该语句时,为什么再次使用eval()函数。
我认为在python程序中使用它可能会造成一些差异,所以我也试过了。
x+2
输出为
x=10
x=x+12
print(x)
print(eval('x+13'))
print(x+13)
因此22
35
35
和print(x+13)
打印相同的结果,我相信在内部执行相同的操作。
我是否遗漏了Python中print(eval('x+13'))
函数的最佳或专用用例?或者它只是我的理解?
先谢谢你。