内置函数的实现

时间:2014-07-13 14:14:30

标签: python python-internals

我试着环顾四周,但我无法找到关于这个主题的任何明确内容。

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

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

1 个答案:

答案 0 :(得分:7)

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

例外主要是类型; strdict以及list之类的内容在Objects directory of the C source中有自己的C文件;这些列为table in the bltinmodule source

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

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