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

如何在Python函数中获取参数的输入变量名作为字符串?

获取函数参数的传入变量名

可以借助Python的inspect模块结合正则解析,实现打印传入参数的变量名需求,具体代码如下:

import inspect
import re

def func(df_1, df_2):
    # 获取调用该函数的栈帧上下文
    caller_frame = inspect.currentframe().f_back
    # 提取调用代码的源码文本
    caller_source = inspect.getsource(caller_frame)
    # 正则匹配函数调用语句中的参数部分
    call_pattern = re.search(r'func\((.*?)\)', caller_source)
    if call_pattern:
        # 分割并清理参数名称
        param_names = [name.strip() for name in call_pattern.group(1).split(',')]
        print(param_names[0])  # 输出 'first_df'
        print(param_names[1])  # 输出 'second_df'

# 测试示例
import pandas as pd
first_df = pd.DataFrame({'col1': [1, 2, 3]})
second_df = pd.DataFrame({'col2': [4, 5, 6]})
func(first_df, second_df)

说明

  • 这种方法仅在调用函数时传入的是直接变量名时有效,如果是传入表达式(比如func(pd.DataFrame(...), ...)),解析出的会是表达式内容而非变量名。
  • 该方案更适合调试场景,生产代码中不建议依赖,因为它对调用代码的格式(比如换行、空格)敏感,正则匹配可能因格式变化失效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 10:18:13