有没有办法了解python中内置函数是如何工作的?我的意思不仅是如何使用它们,还包括它们是如何构建的,排序或枚举等后面的代码是什么?
发布于 2011-12-23 03:06:01
因为Python是开源的,所以你可以阅读source code。
要找出特定模块或函数是在哪个文件中实现的,通常可以输出__file__
属性。或者,您也可以使用inspect
模块,请参阅inspect
文档中的Retrieving Source Code一节。
对于内置的类和方法,这就不那么简单了,因为inspect.getfile
和inspect.getsource
将返回一个类型错误,声明对象是内置的。但是,许多内置类型都可以在Objects
sub-directory of the Python source trunk中找到。例如,有关enumerate类的实现,请参见here;有关list
类型的实现,请参见here。
发布于 2014-11-15 22:56:37
这是一个补充@Chris' answer的食谱答案,CPython已经转移到GitHub,Mercurial存储库将不再更新:
如果necessary.
git clone https://github.com/python/cpython.git
cd cpython
print()
...
egrep --color=always -R 'print' | less -R
print()
...egrep --color=always -R 'print' | less -R
Python/bltinmodule.c
-> builtin_print()
好好享受吧。
发布于 2017-11-19 05:36:09
我必须稍微挖掘一下才能找到下面的Built-in Functions
的来源,因为搜索会产生成千上万的结果。(祝你好运,搜索其中的任何一个,以找到它的来源)
无论如何,所有这些函数都是在以builtin_{functionname}
开头的bltinmodule.c
函数中定义的
内置源:https://github.com/python/cpython/blob/master/Python/bltinmodule.c
对于内置类型:https://github.com/python/cpython/tree/master/Objects
https://stackoverflow.com/questions/8608587
复制相似问题