python源代码中的哪个是math.exp()定义的?

Yua*_*liu 3 python exp

我想知道如何math.exp()在python中实现该函数.在Python源代码中math.exp()定义的位置是什么?

Mar*_*ers 12

这个有点棘手.

math模块在C模块中实现mathmodule.c.在该文件的末尾有一个特定的Python库结构,它定义expmath_exp:

static PyMethodDef math_methods[] = {
    # ...
    {"exp",             math_exp,       METH_O,         math_exp_doc},
Run Code Online (Sandbox Code Playgroud)

math_exp本身实际上是通过FUNC1定义的,使用math_1包装器函数调用C库exp函数,并进行一些错误处理和类型转换:

FUNC1(exp, exp, 1,
     "exp(x)\n\nReturn e raised to the power of x.")
Run Code Online (Sandbox Code Playgroud)

但是,C函数实现本身完全取决于平台,并且在现代硬件上通常由硬件来处理.您必须转向函数的软件版本才能找到在Python中实现此功能的起点.

您可以使用fdlibm实现作为这样一个起点,也许,这里是exp从该库中C语言中的函数实现的链接:

或者你可以参考这个实现: