pycharm - 在 PyCharm vs Jupyter Lab 中运行 exec()
问题描述
我使用python3.6
, 并尝试使用lambda
从.yml
文件加载的功能。我有一个str
格式的 lambda,所以我使用该exec('l = lambda x: print(x)')
函数将其转换为有效lambda
并将其分配给一个变量,但是NameError: name 'l' is not defined
当我尝试使用 lambda 时它会引发异常
以下玩具示例演示了我的问题:
import pandas as pd
exec('l = lambda x: x+1')
df = pd.DataFrame(dict(a=[1, 2, 3], b=[4, 5, 6]))
df.loc[:, 'c'] = df.loc[:, 'a'].apply(l)
df
NameError: name 'l' is not defined
这段代码在 Jupyter Lab 中运行得很好,但是当我运行它时会导致异常PyCharm
。此外,当我debug
在 PyCharm 中使用该模式并尝试评估l
时 - 它确实表明这是一个<function <lambda> at 0x7fe604a13f28>
我究竟做错了什么?为什么在 JupyterLab 和 PyCharm 调试模式下它可以工作,但在我运行 PyCharm 时却不行?
我将非常感谢任何帮助。
解决方案
推荐阅读
- python - 如何使用步进函数在我的亚马逊 ec2 机器上一个接一个地运行 3 个 python 脚本?
- ruby-on-rails - 无需刷新页面即可将用户添加到可操作频道。
- mongodb - 用户不是构造函数
- sql - 最小化相同子查询的使用
- android - 无法将 Firebase 存储映像存储到文件夹中
- ubuntu - .net core web api访问容器中的文件夹
- android - 电报api配置项目异常
- python - TensorBoard 记录统计数据与训练分开
- javascript - 从子窗口调用父窗口函数不起作用
- javascript - XMLHttpRequest 循环