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

Python:Jupyter文档场景下获取函数实参表达式字符串并输出结果

解决方法

要实现这个需求,核心是捕获函数调用时传入的表达式文本,而不是只拿到表达式计算后的结果。可以借助inspect模块获取调用上下文的源代码,再用正则提取表达式内容,最后格式化输出。

实现代码

import inspect
import re

def printspecial(expr):
    # 获取调用该函数的代码帧
    caller_frame = inspect.currentframe().f_back
    # 提取调用代码行
    caller_line = inspect.getframeinfo(caller_frame).code_context[0].strip()
    
    # 正则匹配函数调用中的参数表达式
    expr_match = re.search(r'printspecial\((.*?)\)', caller_line)
    expr_str = expr_match.group(1).strip() if expr_match else str(expr)
    
    # 格式化输出,左侧表达式左对齐占8位,右侧是计算结果
    print(f"{expr_str:<8}{expr}")

测试示例

调用printspecial(1+1),会输出:

1+1     2

注意事项

  • 这个实现适合单行调用的场景(比如Jupyter Notebook里的常规使用),如果参数是多行表达式、嵌套函数调用,正则可能无法准确提取表达式文本,需要根据实际情况调整正则规则。
  • 如果调用时传入的是变量(比如printspecial(a)),会输出变量名和它的值,同样符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 11:55:03