代码之家  ›  专栏  ›  技术社区  ›  Richard Neumann

在哪里可以找到os.uradom()的源代码?

  •  1
  • Richard Neumann  · 技术社区  · 7 年前

    os.urandom() 作用 os.py ,但它既没有在那里定义,也没有在那里导入。 我还试图对定义进行grep:

    /usr/lib/python3.7 $ grep -rFl "def urandom" 2> /dev/null 我怀疑在os.uradom()上发生了一些神奇的事情。

    1 回复  |  直到 7 年前
        1
  •  5
  •   Martijn Pieters    7 年前

    定义了许多用于 os 模块由 Modules/posixmodule.c C ,而不是Python,因为访问系统函数需要本机代码。

    你可以看到这是 os.py source code posix 或 nt 基于当前的操作系统,其中这两个名称都是根据上面的 posixmodule.c 文件,但被重命名以更好地反映平台,并表明两个变体( 变量提供的功能更少)。

    os_urandom_impl() function 有关 os.urandom() . 这将委托给一个内部功能, _PyOS_URandom() ,它与Python启动过程早期所需的其他助手函数一起定义在中 Python/bootstrap_hash.c