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

如何获取Python中已导入方法的别名字符串?

获取Python函数别名的字符串形式

首先要明确:函数对象本身不会存储它被赋予的别名信息——因为一个函数可以被多个变量同时引用(比如a = myfunc; b = myfunc),所以不存在专门记录单一"别名"的属性。

如果一定要在当前作用域中找到指向该函数的变量名,可以通过遍历当前作用域的符号表实现,示例代码如下:

from foo import foo_func as myfunc

def get_alias(target_obj):
    # 遍历当前局部作用域的变量
    for var_name, obj in locals().items():
        # 用is判断对象身份,避免值相等但对象不同的情况
        if obj is target_obj:
            return var_name
    # 局部作用域找不到就去全局作用域找
    for var_name, obj in globals().items():
        if obj is target_obj:
            return var_name
    return None

print(get_alias(myfunc))  # 输出 'myfunc'

需要注意几个局限性:

  • 如果同一个函数被多个变量引用,只会返回遍历过程中第一个匹配的变量名
  • 该方法仅能在变量所在的作用域中生效,跨作用域无法直接获取
  • 若函数未被任何变量直接引用(比如匿名传递),则无法找到对应的名称

另外补充:__name__属性存储的是函数定义时的原始名称,和变量别名没有关联,所以确实无法通过它获取别名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 10:18:09