相关疑难解决方法(0)

eval,exec和compile之间有什么区别?

我一直在寻找的Python代码动态评估,并遇到了eval()compile()功能,以及exec声明.

有人可以解释之间的区别evalexec怎样的不同模式,compile()适应吗?

python eval dynamic exec

403
推荐指数
3
解决办法
19万
查看次数

是否可以调用exec以使其与Python 3和Python 2兼容?

exec在一些Python 2代码中使用该语句,并且我试图使该代码与Python 2和Python 3兼容,但是在Python 3中,exec已经从语句变为函数.是否可以编写与Python 2和3兼容的代码?我已经阅读了Python 2和Python 3双重开发,但我对exec语句/函数更改的特定解决方案感兴趣.

我意识到这exec通常是气馁的,但我正在构建一个Eclipse插件,它在PyDev之上实现了实时编码.有关详细信息,请参阅项目页面.

python python-2.7 python-3.x

7
推荐指数
2
解决办法
969
查看次数

对exec行为的任何解释?

寻找有关此代码引发的原因的详细解释SyntaxError.

def echo(x):
    return x

def foo(s):
    d = {}
    exec(s, {}, d)
    return dict((x,y) for x,y in d.items())

def bar(s):
    d = {}
    exec(s, {}, d)
    return dict((x, echo(y)) for x,y in d.items()) # comment this to compile

s = 'a=1'
foo(s)
Run Code Online (Sandbox Code Playgroud)
  File "test.py", line 11
    exec(s, {}, d)
SyntaxError: unqualified exec is not allowed in function 'bar' it contains a
             nested function with free variables
Run Code Online (Sandbox Code Playgroud)

python

3
推荐指数
1
解决办法
3202
查看次数

标签 统计

python ×3

dynamic ×1

eval ×1

exec ×1

python-2.7 ×1

python-3.x ×1