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

是否存在可识别Python内置函数来源的模块?能否用inspect获取其源码?

Python内置函数来源识别与源码获取问题解答

为什么inspect.getsource无法获取内置函数源码

内置函数(比如print)是用C语言实现的,并非Python代码。inspect.getsource()仅支持获取用Python编写的对象(模块、类、函数、方法等)的源码,而builtins.print属于builtin_function_or_method类型,不在该函数的支持范围内,因此会抛出TypeError。

如何获取内置函数的来源信息

Python运行时并没有内置模块直接返回内置函数对应的C源码文件和函数名,但可以通过CPython的源码结构对应:

  • 绝大多数常用内置函数(如print、len、sum等)位于CPython源码的Objects/bltinmodule.c文件中,print对应的C函数名为builtin_print
  • 部分特殊内置函数可能在其他C文件中,比如open对应Modules/io.c中的builtin_open

如果需要在Python程序中返回类似source = bltinmodule.c, builtin_print的结果,你需要自行维护一个内置函数名到C文件、函数名的映射表,因为这些元数据并没有被Python运行时存储。

另外,你可以用inspect.isbuiltin()判断一个函数是否为内置函数:

import inspect
import builtins

print(inspect.isbuiltin(builtins.print))  # 输出True

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 12:02:50