我试着环顾四周,但我无法找到关于这个主题的任何明确内容。
是否在每次启动Python时自动导入的模块中实现内置函数?在模块的情况下?
或者内置函数只是Python解释器中的嵌入式函数吗?
答案 0 :(得分:7)
对于CPython,内置函数(大部分)在bltinmodule.c
file中实现。
例外主要是类型; str
和dict
以及list
之类的内容在Objects
directory of the C source中有自己的C文件;这些列为table in the bltinmodule
source。
从技术上讲,实现将其视为单独的模块对象,但在当前全局命名空间不包含名称时会自动搜索。因此,当您在代码中使用abs()
并且全局命名空间中没有abs
对象时,也会在内置命令模块中搜索该名称。
它也被公开为{3}}(或Python 3中的__builtin__
module),因此即使您在代码中隐藏任何内容,也可以访问内置名称。但是,与sys
模块一样,它被编译为Python二进制文件,并且不能作为单独的动态加载文件使用。