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

问题描述 投票:0回答:2

我正在执行这行代码-

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

但这不是像 5 那样给出输出而是给出输出-

5
None
python python-3.x function eval
2个回答
0
投票

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

eval("(2 +3)")

这将返回 5,因为函数 eval 返回值 5,该值使用 print() 打印出来

但是,

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

在 eval() 中,您使用了 print()。因此,内部 print() 打印值 5,而函数 eval() 返回 None,因为它没有任何可返回的内容。 None 被外部 print() 打印出来


0
投票

当你尝试评估类似的东西时

eval("2")
你实际上会得到 int 类型。

但是尝试计算 print 表达式会给你 None 类型。将执行打印,但类型为

eval("print(2+3)")
将没有。

© www.soinside.com 2019 - 2024. All rights reserved.