我正在学习Python,我想通过阅读源代码深入了解python的工作原理.
我可以手动转到安装Python的目录并查看源代码
我想知道,是否有可能直接从IDE中读取Python源代码,如PyCharm?
我尝试control click使用方法名称,即使它确实将我带到方法定义页面,它也不包含任何实现代码
编辑1
我理解在c中实现了大量的python(确切地说是cpython).无论如何都要读取IDE中的c代码,比如PyCharm?
Arv*_*ind 15
正如你所说,一大块python是用C语言编写的,但这些不包含在发行版中.因此,您无法从IDE中读取源代码.这些主要是编译源,这意味着解释器只使用字节码.并非所有函数都是用C语言编写的,其中大部分都是用纯python编写的.
查看源的一种方法是通过终端使用ipython.
In [10]: import string
In [11]: string.lower??
Signature: string.lower(s)
Source:
def lower(s):
"""lower(s) -> string
Return a copy of the string s converted to lowercase.
"""
return s.lower()
File: /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/string.py
Type: function
In [12]: import os
In [13]: os.system??
Docstring:
system(command) -> exit_status
Execute the command (a string) in a subshell.
Type: builtin_function_or_method
Run Code Online (Sandbox Code Playgroud)
或者,您可以通过使用找到您想要的inspect.getsource().
import inspect
import os
print (inspect.getsource(os))
# You should see the source code here
Run Code Online (Sandbox Code Playgroud)
如上例所示,这对某些内置函数不起作用.
要检查用C编写的内容,您应该使用另一种方法来检查此链接,该链接是python解释器的官方存储库.大多数对象类型都列在该cpython/Objects文件夹中.例如,这是C 中列表对象的实现,对于内置模块,请参考这个.
我相信这就是你想要的.如果您需要帮助,请发表评论.
小智 5
通常PyCharm可以做你想要的,除非Ctrl + Click引导你进入C函数.在这种情况下,您将获得关于函数签名和返回值等的最少信息,就像您在帖子中显示的那样.由于效率原因,内置函数主要用C语言编写,所以如果你想查看C代码,你必须下载CPython源代码并深入研究它.另一种方法是下载PyPy源代码并查看它.尽管如此,您仍然可以使用PyCharm从标准库中用Python编写的模块中读取代码,这对您的学习过程很有帮助.相信我,你会在那里找到优质的代码.
| 归档时间: |
|
| 查看次数: |
1237 次 |
| 最近记录: |