目录
问题背景
最近的工作内容涉及到利用Python的AST模块进行脚本文件的自动化解析,并把解析的内容以自定义json的格式提供给其他的程序使用。这里面涉及到需要通过程序获取Python内置类型信息,存放到一个列表中,然后根据解析出来的脚本中的变量类型来自动识别是内置类型还是自定义的类型。以下内容基于python3.9版本,其他版本使用的模块、方法可能会有所不同。
解决方案
1.python中的builtins模块
根据官方的参考文档我们可以了解到builtins模块包含了python内置的所有标识符,包括函数、类型、常量等等。那么我们只需要遍历builtins模块中的这些标识符,找出那些是type类型的标识符并存放到一个list中,就能达到我的目的。
2.示例代码
代码如下(示例):
import builtins
builtin_types = []
for t in builtins.__dict__.values():
if isinstance(t, type):
builtin_types.append(t.__name__)
if __name__ == '__main__':
print(builtin_types)
运行结果如下:
可以看到,已经将所有python内置的类型名称都获取并存放到builtin_types列表中了。
总结
参考文档: