我们如何评估字符串并在Python中返回对象?

内置eval()函数需要一个字符串参数。但是,Python解释器将字符串视为Python表达式,并评估该字符串是否有效,然后返回由表达式产生的类型对象。

包含算术表达式的字符串

>>> x=eval('2+2')
>>> type(x)
<class 'int'>
>>> x
4

字符串计算到列表/元组

>>> x=eval('tuple([1,2,3])')
>>> x
(1, 2, 3)
>>> type(x)
<class 'tuple'>

包含列表理解表达式的字符串

>>> x = eval('list((a*2 for a in range(5)))')
>>> x
[0, 2, 4, 6, 8]
>>> type(x)
<class 'list'>