网站qq获取,推广方法,电子商务发展的前景,网站建设栏目规划PythonREPL是python提供的 “Read–Eval–Print Loop”#xff08;读取-求值-打印-循环#xff09;的缩写#xff0c;它是一种简单的、交互式的编程环境#xff0c;我们之前在用AI生成代码后执行就使用这个方法#xff0c;例如
def py_repl_tool(self, realcode: str):py…PythonREPL是python提供的 “Read–Eval–Print Loop”读取-求值-打印-循环的缩写它是一种简单的、交互式的编程环境我们之前在用AI生成代码后执行就使用这个方法例如
def py_repl_tool(self, realcode: str):py_repl PythonREPL()...res py_repl.run(realcode)之前使用的挺好但最近生成带函数的代码时就出现了执行报错 Python REPL can execute arbitrary code. Use with caution. NameError(“name ‘getReportDataLocal’ is not defined”)
需要执行的代码如下
from akshare import index_stock_cons
from pythonRepository import getReportDataLocal, CalAnnualRatiodef genHS300EPS(report_date):# 获取指定日期的业绩报表df_report getReportDataLocal(report_date)# 计算前一年的报表日期......# 打印并返回处理后的stock_listprint(stock_list)return stock_list# 示例调用print(genHS300EPS(20231231))代码本身是完整且正确的 但执行结果报错 查了一下报错信息发现这种报错是没有引入import库和方法从而提示X方法无定义。 我看一下PythonREPL()方法发现实际执行的是exec(command, globals, locals)
我搜索后发现猜想可能是全局变量和局部变量作用域的相关问题于是尝试自己写一个execcommandglobals函数
def py_repl_tool_1(self, realcode: str):# py_repl PythonREPL()...# res py_repl.run(realcode)try:result[i] exec(realcode, globals())print(执行成功)except Exception as e:print(执行失败: %s, %s % e % result[i])# print(traceback.format_exception(e))traceback.print_exc()成功了