小编典典

为什么某些内置Python函数只能通过?

python

我想看看math.py函数是如何实现的,但是当我在PyCharm中打开文件时,我发现所有函数都是空的,有一个简单的pass。例如:

def ceil(x): # real signature unknown; restored from __doc__
    """
    ceil(x)

    Return the ceiling of x as a float.
    This is the smallest integral value >= x.
    """
    pass

我猜这是因为所使用的功能实际上来自C标准库。它是如何工作的?


阅读 214

收藏
2021-01-20

共1个答案

小编典典

PyCharm对您撒谎。您正在查看的源代码是PyCharm创建的伪造品。PyCharm知道那里应该有什么函数,并且可以使用函数docstrings猜出它们的签名,但不知道函数主体应该是什么样。

如果您想查看真正的源代码,可以在的官方Github存储库中查看它Modules/mathmodule.c。里面的许多函数都是C函式的宏产生的薄包装器math.h,但是还有一堆手动编写的代码来处理诸如标准库实现不一致或不足,没有math.h等效项的函数以及自定义钩子之类的东西__ceil__

2021-01-20