3

在python3中,当我运行

>>> exec("","","")
TypeError: exec() arg 2 must be a dict, not str
>>> exec( "print('Hello')", print("World"), print("!") )
World
!
Hello
>>> type(print("World"))
World
<class 'NoneType'>

我的意思是在 Python3 中, exec() 的 arg2 需要一个字典,但我们仍然可以放置一个不是字典的 print() 函数。为什么?

4

2 回答 2

7

简单的!

这是可以接受的,因为它的值为 None(它可以接受 None 或 dict),这是参数的默认值。

在示例中,调用如下:

exec("print('Hello')")

是相同的:

exec("print('Hello')", None, None)
于 2013-05-30T19:58:23.287 回答
3

printreturn None,它是可选参数的有效参数。

于 2013-05-30T19:59:08.290 回答