问题标签 [python-exec]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
757 浏览

python - 如果嵌套在函数中,listcomp 无法访问 exec 调用的代码中定义的本地变量

是否有任何 python 大师能够解释为什么这段代码不起作用:

错误:

虽然这个工作正常:

我知道它与局部变量和全局变量有关,就好像我将 exec 函数从我的主范围传递给局部变量和全局变量一样,它工作正常,但我不完全理解发生了什么。

这可能是 Cython 的错误吗?

编辑:用 python 3.4.0 和 python 3.4.3 试过这个

0 投票
0 回答
35 浏览

python - 删除不必要的 exec 语句以提高速度

我正在尝试重构我可以使用的一些 python 代码。开发人员经常使用 exec 语句,但用于非常简单的任务,例如

我最重要的问题是我们需要 exec 来进行那些简单的变量赋值吗?使用 exec 来完成这些简单的任务需要花费吗?Appart for code 看起来不好,还有什么其他原因我们不应该将 exec 用于这种目的吗?

0 投票
2 回答
1088 浏览

python - 将 python exec 访问权限限制为一个目录

我有一个 python 脚本,它使用exec函数执行一串代码。我需要一种方法来限制脚本对当前目录的读/写访问。我怎样才能做到这一点?

或者,有没有办法直接通过命令行限制 python 脚本的环境,这样当我运行解释器时,它不允许从目录中写入?我可以使用 virtualenv 做到这一点吗?如何?

所以基本上,我的应用程序是一个门户网站,人们可以在其中编写和执行 python 应用程序并获得响应——我已经将它托管在 heroku 上。现在可能有多个用户拥有多个文件夹,并且没有用户应该有权访问其他人的文件夹甚至系统文件和文件夹。权限应由 nodejs 应用程序(Web 应用程序)上的用户而不是本地用户确定。我该如何做到这一点?

0 投票
1 回答
3155 浏览

python - 为什么 Python 3 exec() 在指定本地时会失败?

在 Python 3 中执行以下操作没有错误:

但是,如果我也尝试捕获局部变量 dict ,它会失败并显示NameError

为什么会发生这种情况,如何在捕获全局变量和局部变量的同时执行此代码?

0 投票
1 回答
33 浏览

python - 如何在这个 tkinter/exec()/cffi 组合中修复这个堆栈溢出?

我有一个 Python 驱动的 DSL,我通过exec(). 此 DSL 包括通过 CFFI 进行的本机函数调用。

当调用一个只有 2 个 C 调用深度的本机函数时,我遇到了堆栈溢出(所以,你让它变得不可用!)崩溃uint16_t,每个 C 函数的堆栈上只分配了少数 s 。Python 应用程序是一个tkinterGUI,它通过 timer () 事件调用 DSL master.after(1000, self.tick),这可能会占用堆栈本身的很大一部分。

这里没有递归调用。

OS X 10.12.3,Python 3.6.0rc1(v3.6.0rc1:29a273eee9a5,2016 年 12 月 6 日,16:24:13),CFFI 1.9.1

我知道resource.setrlimit(resource.RLIMIT_STACK, (resource.RLIM_INFINITY, resource.RLIM_INFINITY)),但它需要超级用户权限。我相信这不是必需的,因为只剩下一个堆栈用于两个函数调用是不正常的。

CFFI 或 exec() 会限制被调用者的堆栈大小吗?

从 DSL 调用的函数:

exec调用代码:

苹果报告片:

(此线程真的到此结束,Apple 报告中没有其他内容)

0 投票
1 回答
174 浏览

python - cx_freeze Matplotlib 问题

似乎有一些人正在努力构建使用 Matplotlib 库的 Python 可执行文件。

我正在使用 CX_Freeze 并且可以在没有图形的情况下为我的 GUI 创建可执行文件,但是当添加带有 matplolib 库的图形时,当我尝试运行可执行文件时出现错误:

有没有人设法让这个工作?

0 投票
1 回答
2664 浏览

python - exec 函数在 python 3.6 中无法正常工作

我写的代码

输出我期望的
0 之前
1 之后

输出我
在 0 之前得到的 0
之后

如果我编写没有函数的代码,它会给出预期的输出

我想问如何更正此代码,以便获得预期的输出。另外,我不允许使用列表和字典。

0 投票
0 回答
30 浏览

python - exec 的作用域规则是什么?

我(在我看来)对 Python 范围规则有一些基本的了解(基于对这个答案的研究)。

我还从关于 的文档中exec了解到,它采用globalslocals作为可选参数,并且:

在所有情况下,如果省略了可选部分,则代码将在当前范围内执行。


注意:以下所有示例均假定使用 Python 3。

话虽如此,我最近偶然发现了这个案子,这让我有点困惑:

运行上面的代码会导致:

在这里,很明显可以exec访问tests locals(passed_data和 'local_result')。
尽管如果我们尝试更改其中任何一个:

这将导致:

global在里面使用exec

给出相同的结果(当然,因为local_result在 的范围内是本地的test):

是什么使我们能够local_result通过exec- 定义它使用global

这给了我们:


在我看来,我只是缺少对 Python 作用域或 的机制的一些基本了解exec,无法掌握这种情况。
不过,我想了解以下内容:

  1. 为什么exec能够从函数范围打印变量,而不使用global,但不能改变它?
  2. 我的理解是(给定globalslocals被省略exec将在调用它的范围内执行任何 Python 代码,就好像这段代码只是在源代码中(没有exec),我在哪里(以及如何)在这个假设中错了?

PS:我知道更改局部变量 viaexec不是“正确的做法”,我exec只是为了学习而寻求对范围规则的理解。

0 投票
0 回答
41 浏览

python - 创建动态函数时编译的效果是什么?

在搜索在 python 中创建动态函数时,我最终得到以下代码。

作为 python 指南,它建议不要使用 eval 和 exec 来进行良好的编程。因此,上面的代码是有效的还是对程序的性能有任何问题?

0 投票
3 回答
2898 浏览

python - python中exec内的赋值

我正在尝试使用 PyQt5 构建计算器,我得到了我需要评估的字符串并将其分配给一个变量,以便我可以将该变量作为答案传递给小部件。到目前为止,我可以评估表达式,但不能评估它。我怎样才能做到这一点 ?到目前为止,我有以下代码:-

当我尝试在没有全局的情况下运行它时,它运行时没有错误,但 x 仍然为 0,如果我这样运行它,我会收到此错误:-

我对python很陌生所以不知道发生了什么