Python:os.mkdir的代码在哪里?

我一直在浏览os模块的代码(为清楚起见,我正在查看文件/usr/lib/python2.7/os.py),并且我一直在尝试查找以下代码mkdir函数.据我所知,它来自“ posix”模块及其内置函数,与range或max相同:

>>> import posix
>>> posix.mkdir
<built-in function mkdir>
>>> max
<built-in function max>

我猜它们的代码是用C编写的,Python解释器知道在哪里可以找到它们.有人可以解释一下或向我指出一些有用的资源吗,这些内置函数的编写方式和位置以及如何与解释器集成?

谢谢!

最佳答案
在POSIX平台上(以及Windows和OS / 2),os模块从C模块(在posixmodule.c中定义)导入.

该模块定义了posix_mkdir() function,在POSIX平台上包装了mkdir() C call,在Windows上包装了CreateDirectoryW.

该模块将该函数以及其他函数注册到模块PyMethodDef posix_methods structure中.导入该模块时,Python调用PyMODINIT_FUNC() function,它使用该结构创建具有posix_methods结构的适当模块对象,并添加一系列常量(例如open() flag constants)到模块.

有关C扩展的工作方式,请参见Extending Python with C or C++教程.

转载注明原文:Python:os.mkdir的代码在哪里? - 代码日志