内置函数的实现

zer*_*uno 0 python python-internals

我试着环顾四周,但我找不到任何关于这个话题的清楚.

是否在每次启动Python时自动导入的模块中实现内置函数?在哪个模块的情况下?

或者内置函数只是Python解释器中的嵌入式函数?

Mar*_*ers 7

对于CPython,内置函数(大部分)在bltinmodule.c文件中实现.

例外主要是类型; 类似的东西str,dict在C源目录中list有自己的C文件; 这些中列为.Objectsbltinmodule

从技术上讲,这被实现视为一个单独的模块对象,但在当前全局命名空间不包含名称时会自动搜索.因此,当您abs()在代码中使用并且abs全局命名空间中没有对象时,也会在内置命令模块中搜索该名称.

它也作为__builtin__模块(或builtins在Python 3中)公开,因此即使您在代码中隐藏了任何内容,也可以访问内置名称.sys但是,与模块一样,它被编译为Python二进制文件,并且不能作为单独的动态加载文件使用.