python - 在不执行代码的情况下获取 Python 函数的完全限定名
问题描述
我正在编写一个库来帮助我可视化我自己代码的一些指标。这导致我需要我正在分析的代码中的任何函数调用的完全限定名称。
我曾希望使用 Python 的AST模块可以为我提供这个。如果我遍历树,它确实为任何导入和别名提供了节点,并且确实为实际的函数调用提供了节点。
但是,尝试从这些节点构建完全限定名称并不是一件容易的事,我怀疑它是否能处理所有情况。我该怎么做呢?(我的 IDE 支持 Go To Definition,所以我知道这是可能的。)
这是一个函数调用节点的漂亮打印,注意名称不是全名:
Call(func=Name(id='fib', ctx=Load()), args=[
Num(n=100),
], keywords=[])
解决方案
推荐阅读
- javascript - 库存物品数量
- c++ - 计算字符串中有多少特定字符无法正常工作
- minecraft - Minecraft 1.15.2 的随机矿石生成问题
- java - 使用 CompletableFuture 时,HttpServletRequest 标头消失
- snowflake-cloud-data-platform - 雪花存储过程变量绑定错误
- xml - 动态地将孩子兄弟姐妹的价值观吸收到一个父母的文本中
- asp.net-core - SwaggerUI Asp.Net Core - 如何引用 .json 文件
- c++ - 线程池在一些循环后阻塞主线程
- java - 如何在自定义启动器中支持快捷方式固定?
- vb.net - 如何让我的 errProvider 正确显示?