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

Art*_*o E 1 python cpython python-2.7

我一直在浏览os模块的代码(只是为了清楚,我正在查看文件/usr/lib/python2.7/os.py),我一直在努力寻找代码mkdir函数.据我所知,它来自'posix'模块,它是一个内置函数,与范围或最大值相同:

>>> import posix
>>> posix.mkdir
<built-in function mkdir>
>>> max
<built-in function max>
Run Code Online (Sandbox Code Playgroud)

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

谢谢!

Mar*_*ers 6

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

该模块定义了一个在Windows 上将POS 调用封装在POSIX平台上的posix_mkdir()函数.mkdir()CreateDirectoryW

模块在模块PyMethodDef posix_methods结构中将此功能与其他功能一起注册.导入模块时,Python调用该PyMODINIT_FUNC()函数,该函数使用该结构创建具有该posix_methods结构的approriate模块对象,并向模块添加一系列常量(例如open()标志常量).

有关C扩展如何工作的信息,请参阅" 使用C或C++扩展Python"教程.