2013-05-30 123 views
3

在python3,当我运行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()函数这不是一个字典。为什么?

回答

7

简单!

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

在一个示例中,呼叫如:

exec("print('Hello')") 

相同:

exec("print('Hello')", None, None) 
3

print返回None,这是一个可选的参数有效的参数。

相关问题