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

Python 中如何获取传入函数的输入参数对应的原变量名称

Python函数内获取调用时传入的原变量名实现方法

可以通过inspect模块解析调用栈的上下文代码实现,完整可运行的示例代码如下:

import inspect

a = 1
b = 2
c = 3

def test(x):
    # 获取当前函数调用的上层帧(即调用test的代码所在的帧)
    caller_frame = inspect.currentframe().f_back
    # 提取调用行的原始代码
    call_code = inspect.getframeinfo(caller_frame).code_context[0].strip()
    # 解析出test括号内的参数内容
    var_name = call_code[call_code.find('(')+1 : call_code.rfind(')')].strip()
    print(var_name)

test(b)

运行上述代码,输出结果为b,完全符合需求。

额外说明

  • 上述代码仅适配单参数、调用时直接传单个变量的场景,如果调用时传入的是常量、多参数、表达式,需要根据实际场景调整字符串解析逻辑
  • 调用栈解析有额外性能开销,不适合在高频率调用的核心逻辑中使用
  • 该方案属于非常规的黑魔法实现,生产环境优先选择显式传入变量名的写法,可维护性和兼容性更好

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 21:36:01