内置函数的实现
我试图环顾四周,但我无法找到有关此主题的任何明确信息。
每次启动Python时都会自动导入模块中实现的内置函数吗? 在这个模块是什么情况下?
或者内置的函数只是嵌入Python解释器中的函数?
对于CPython,内置函数(大部分)在bltinmodule.c
文件中实现。
例外主要是类型; 像str
和dict
和list
类的东西在C源的Objects
目录中有它们自己的C文件; 这些在bltinmodule
源文件中列为表格。
从技术上讲,这被视为一个单独的模块对象的实现,但是当当前全局名称空间不包含名称时自动搜索。 所以当你在你的代码中使用abs()
,并且全局命名空间中没有abs
对象时,内置模块也会搜索该名称。
它也作为__builtin__
模块公开(或者builtins
在Python 3中),因此即使在代码中隐藏任何内容,也可以访问内置名称。 但是,与sys
模块一样,它被编译为Python二进制文件,并且不能作为单独的动态加载文件提供。