You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python延迟代码求值:实现可打印源码、执行处理结果的测试函数

test()测试例程实现需求

我希望实现一个test()测试例程,向其传入代码后需要完成以下功能:

  • 打印传入的代码内容
  • 执行对应代码
  • 对代码执行结果做后续处理
  • 在后台自动完成参数处理

对于简短的代码片段,我可以使用eval(code-string)实现需求,示例代码如下:

def test_eval(expr_str, expected):
    global a,b
    res = eval(expr_str) == expected
    print(f'{res} : {expr_str}')

但该方案无法适配以下场景:

  • 包含赋值操作的代码
  • 要求test()无需显式传参即可调用fun(),即使原函数为带参形式fun(a, b...)
  • 较长的代码块

现有可行方案

目前已实现一种可运行的方案:

import inspect

def test(fun,expected,args):
    res = fun(*args) == expected
    expr = inspect.getsource(fun)
    print(f'{res} : {expr}')


def tests():
    def w(a,b): # args
        a += b # assignment
        return a.sym == "(a + b)"

    a = ...
    b = ...
    test(w,True,(a,b))

是否存在更优的实现思路?

内容的提问来源于stack exchange,提问作者sten

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 10:54:21