Множество имен, определенных для модуля os
, обрабатываются Modules/posixmodule.c
как в системах POSIX, так и в Windows. Обратите внимание, что исходный код находится в C , а не в Python, поскольку для доступа к системным функциям требуется собственный код.
Вы можете видеть, что это os.py
исходный код , который либо импортирует posix
или nt
на основе текущей ОС, где оба эти имени скомпилированы из указанного выше файла posixmodule.c
но переименованы, чтобы лучше отражать платформу и указывать, что функциональность отличается между двумя вариантами (вариант nt
предоставляет меньше функций).
См. os_urandom_impl()
функцию для деталей реализации os.urandom()
. Это делегирует внутреннюю функцию, _PyOS_URandom()
, которая вместе с другими вспомогательными функциями, необходимыми в начале процесса запуска Python, определяется в Python/bootstrap_hash.c
.