如何使用Python IDLE查看内置函数的代码?

时间:2015-04-20 12:18:51

标签: python directory built-in

我正在尝试查看pow()函数的源代码,并希望了解Python34目录。我查看了Lib目录中的各种库,例如fractions.pybase64.py,但我似乎无法找到内置函数的.py文件存储。我应该在哪里看?

2 个答案:

答案 0 :(得分:1)

标准库中的内置函数和函数并不总是在Python中实现。在CPython(参考Python实现)中,它们通常用C

编写

您要查找的方法在以下文件中定义(取决于您感兴趣的类型):

您实际上可以在Objects的CPython源代码树中查找/*nb_power*/目录以查找更多内容。试试this search query on GitHub

答案 1 :(得分:0)

repr包含“内置”字样的函数实际上并未在Python代码中定义,在cPython中 - 它们是用C语言编写的,并且可以作为二进制模块使用。

例如,当你得到“pow”的代表时,你会得到:

>>> repr(pow)
'<built-in function pow>'

与Python定义的函数相反:

>>> import glob
>>> repr (glob.glob)
'<function glob at 0x7efefe69aa70>'

因此,如果您从Python.org下载(或使用mercurial获取它),您可以在Python本身的源代码中搜索标记为“内置”的函数的C源代码。

如果你想在satadard lib中使用任何函数的纯Python实现,那么它应该包含在pypy发行版中 - 只需从中获取:

https://bitbucket.org/pypy/pypy你应该看到cPython中所有函数的纯Python实现是出于性能或历史原因而在C中实现的。