exec()在命令行和脚本中的运行方式不同

时间:2019-06-01 07:38:05

标签: python-3.x

当我尝试使用exec()在python控制台和脚本中执行此代码时,其结果不同

python控制台:

>>> def test():
...     x = 13
...     exec('b = x + 1')
...     print(b)
... 
>>> test()
14
>>> 

python脚本

def test2():
    x = 13
    exec('b = x + 1')
    print(b)
  NameError: name 'b' is not defined

但是使用此代码,它们是相同的

python控制台

>>> def test1():
...     x = 0
...     exec('x += 1')
...     print(x)
... 
>>> test1()
0

python脚本

def test1():
    x = 0
    exec('x += 1')
    print(x)

test1()
# 0

2 个答案:

答案 0 :(得分:0)

“”“ 但是使用此代码,它们是相同的

python控制台

>>> def test1():
...     x = 0
...     exec('x += 1')
...     print(x)
... 
>>> test1()
0

python脚本

def test1():
    x = 0
    exec('x += 1')
    print(x)

test1()
# 0

“”“

由于此代码,x是define,所以您的函数'exec()'在这里不起作用 与您没有写'exec'一样

答案 1 :(得分:0)

但是,该错误的原因是您没有定义b。 那可能有用

def test2():
    x = 13
    exec('b = x + 1\nprint(b)')