为什么一些内置的Python函数只有传递?
作者:互联网
我想看看math.py函数是如何实现的,但是当我在PyCharm中打开文件时,我发现所有函数都是空的并且有一个简单的传递.例如:
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标准库.它是如何工作的?
解决方法:
PyCharm骗你.您正在查看的源代码是PyCharm创建的伪造. PyCharm知道应该有哪些函数,它可以使用函数docstrings猜测它们的签名,但它不知道函数体应该是什么样的.
如果你想看到真正的源代码,你可以在Modules/mathmodule.c
的官方Github存储库中查看它.其中很多函数都是来自math.h的C函数的宏生成的薄包装器,但也有一堆手动编写的代码来处理标准库实现不一致或不充分的事情,没有math.h等效的函数,以及像__ceil__这样的定制钩子.
标签:python,pycharm,standard-library,c-standard-library-2 来源: https://codeday.me/bug/20190917/1810145.html