为什么在使用 eval 函数时在第二行的输出中得到 None?

Why do I get None in output in second line while using eval function?

我正在执行这行代码 -

print(eval("print(2 +3)"))

但这不是将输出作为 5 给出输出 -

5
None

当你尝试对类似的东西进行评估时 eval("2") 您实际上将获得类型 int。

但是尝试评估打印表达式会给您 None 类型。将执行打印,但类型 eval("print(2+3)") 将是 None.

这是因为您在 print() 中给出了 eval()。

eval("(2 +3)")

这将 return 5 作为函数 eval returns 使用 print()

打印的值 5

但是,

print(eval("(2 +3)"))

在 eval() 中,您使用了 print()。所以内部 print() 打印值 5 和函数 eval() returns None 因为它与 return 没有任何关系。 None 由外部 print()

打印