【问题标题】:python3 print() in exec()python3 print() 在 exec()
【发布时间】:2013-05-30 19:48:36
【问题描述】:

在 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() 函数。为什么?

【问题讨论】:

    标签: python python-3.x python-exec


    【解决方案1】:

    简单!

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

    在一个示例中,调用如下:

    exec("print('Hello')")
    

    等同于:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2014-04-30
        • 1970-01-01
        • 2013-04-19
        • 2021-04-02
        • 2018-08-20
        • 2019-05-23
        • 2015-06-18
        • 2019-09-04
        • 1970-01-01
        相关资源
        最近更新 更多