Python 为什么我们可以';在这里不能用带str的eval?

Python 为什么我们可以';在这里不能用带str的eval?,python,python-3.x,oop,Python,Python 3.x,Oop,为什么这只能通过repr方法实现 import datetime d=datetime.datetime.now() x=str(d) y=eval(x) print(y) 正在放映 SyntaxError: invalid token 调用str(datetime.datetime.now())时,会得到一个表示当前时间的字符串,例如2019-07-08 19:32:04.078030 但是当调用repr(datetime.datetime.now())时,会返回datetime对象的实际

为什么这只能通过
repr
方法实现

import datetime
d=datetime.datetime.now()
x=str(d)
y=eval(x)
print(y)
正在放映

SyntaxError: invalid token
调用
str(datetime.datetime.now())
时,会得到一个表示当前时间的字符串,例如
2019-07-08 19:32:04.078030

但是当调用
repr(datetime.datetime.now())
时,会返回datetime对象的实际格式。类似于
datetime.datetime(2019、7、08、19、32、47830)

eval()
将字符串作为python函数进行计算。由于
2019-07-08 19:32:04.078030
不是python命令,因此会出现错误
datetime.datetime(2019、7、08、19、32、47830)
不过是一个python命令,可以执行

总的来说,有效的计划是

使用
str()

使用
repr()


你看了你要计算的字符串了吗?只有一个是语法上有效的Python。对不起,你能说得更具体一点吗?但我的程序在不使用eval时运行良好,为什么?你是什么意思?你的意思是没有错误吗?是的,删除eval,就不会有错误是的,删除eval不会导致错误,但是你的输出现在看起来像
datetime.datetime(2019,7,08,19,32,4,78030)
而不是
2019-07-08 19:32:04.078030
是的,找到了解决方案。谢谢
import datetime
d=datetime.datetime.now()
x=str(d)
print(x)
import datetime
d=datetime.datetime.now()
x=repr(d)
y=eval(x)
print(y)