在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需要一个dict,但是我们仍然可以放一个不是dict的print()函数。为什么呢?
答案 0 :(得分:7)
简单!
这是可以接受的,因为它的值是None(它可以接受None或dict),这是参数的默认值。
在一个例子中,调用如:
exec("print('Hello')")
与:
相同exec("print('Hello')", None, None)
答案 1 :(得分:3)
print
返回None
,这是可选参数的有效参数。