python - 问题:“名称'_eval_expr'未定义”即使它应该是
问题描述
所以我的代码遇到了一些问题,我问了一些程序员朋友可能出了什么问题,因为在来这里之前我无法弄清楚,但他们也不知道。
从理论上讲,它应该可以工作,实际上我从我拥有的另一个项目中复制了其中的一半,并且在那里工作正常,但由于某种原因在此代码中没有。使用 github api 获取代码然后运行该代码,但我得到错误
# code
async def parse_str_code(files):
for f in get_files(files):
if isinstance(f.encoding, str):
code = format_content(f.content)
fn_name = "_eval_expr"
code = code.strip("` ")
code = "\n".join(f" {i}" for i in code.splitlines())
body = f"async def {fn_name}():\n{code}"
print(body)
parsed = ast.parse(body)
body = parsed.body[0].body
insert_returns(body)
env = {}
exec(compile(parsed, filename="filename", mode="exec"), env)
await eval(f"{fn_name}()", d)
asyncio.run(parse_str_code(files))
# error
Traceback (most recent call last):
File "D:/namepy/python/project_running_code_with_github/main.py", line 73, in <module>
asyncio.run(parse_str_code(files))
File "D:\name\python\Python\Python38-32\lib\asyncio\runners.py", line 43, in run
return loop.run_until_complete(main)
File "D:\name\python\Python\Python38-32\lib\asyncio\base_events.py", line 608, in run_until_complete
return future.result()
File "D:/name/python/project_running_code_with_github/main.py", line 68, in parse_str_code
await eval(f"{fn_name}()", d)
File "<string>", line 1, in <module>
NameError: name '_eval_expr' is not defined
解决方案
推荐阅读
- python - 如何在 tkinter 中连续刷新 FigureCanvasTkAgg
- python - 熊猫数据框滚动,为什么窗口必须是非负的?
- python - SQLAlchemy 模型混合属性提取不是返回值而是对象
- excel - 连接唯一值而不计算空白单元格
- javascript - 谷歌recaptcha登录抛出错误'error-codes':['invalid-input-secret']
- bash - 为什么 $# 总是返回 0?
- flutter - 颤振警报对话框
- oauth-2.0 - 如何使用 Gmail REST API 发送电子邮件
- python - 尝试用所有列表替换我的文本
- reactjs - 使用 React Router 时传递状态的最简单方法是什么?