Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何直接从IDE读取Python源代码_Python_Pycharm - Fatal编程技术网

如何直接从IDE读取Python源代码

如何直接从IDE读取Python源代码,python,pycharm,Python,Pycharm,我目前正在学习Python,我想通过阅读Python的源代码来深入了解Python的工作原理 我可以手动转到安装Python的目录并检查源代码 我想知道,是否可以直接从IDE(如PyCharm)读取Python源代码 我试图控制方法名称上的单击,尽管它确实将我带到了方法定义页面,但它不包含任何实现代码 编辑1 我知道很多python(确切地说是cpython)是用c实现的。在IDE中,比如PyCharm中,是否有阅读c代码的方法?正如您所说,大量python是用c编写的,但是这些都没有包含在

我目前正在学习Python,我想通过阅读Python的源代码来深入了解Python的工作原理

我可以手动转到安装Python的目录并检查源代码

我想知道,是否可以直接从IDE(如PyCharm)读取Python源代码

我试图
控制方法名称上的单击
,尽管它确实将我带到了方法定义页面,但它不包含任何实现代码

编辑1


我知道很多python(确切地说是cpython)是用c实现的。在IDE中,比如PyCharm中,是否有阅读c代码的方法?

正如您所说,大量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
或者,您可以使用
inspect.getsource()
找到所需内容

与上面的示例一样,这对某些内置函数不起作用

要检查用C编写的内容,应该使用另一种方法,即检查python解释器的官方存储库。大多数对象类型都列在
cpython/Objects
文件夹中。例如,这是C语言中的实现,有关模块,请参阅此模块


我相信这就是你想要的。如果您需要帮助,请发表评论。

通常,PyCharm会做您想做的事情,除非Ctrl+单击将您引导到C函数。在这种情况下,您将只获得有关函数签名和返回值等的最小信息,就像您在文章中所显示的那样。出于效率考虑,内置代码主要是用C编写的,因此如果您想查看C代码,您必须下载CPython源代码并深入研究它。另一种选择是下载PyPy源代码并查看它。
不过,您可以使用PyCharm从标准库中用Python编写的模块中读取代码,这对您的学习过程很有帮助。相信我,您会在那里找到高质量的代码。

我认为Python非常友好,因为它具有高度的封装性。这也正是因为我们并不总是过于关注底层的实现,并提高了我们的效率。因此,您可以通过单击方法名称跳转到方法定义页面,并了解此页面的代码已经足够了。除非你想参与Python语言本身的开发。

很多Python内部函数实际上都是用CPL实现的,如果我错了,请纠正我,我猜
str
类的
split
方法没有显示代码的原因是
split
方法是用c实现的?是的,这是可能的。我认为,如果您想比较一下python的技巧,python文档确实会将您链接到源代码!我将明确指出:)Python的内置类型是用C实现的,因此像
str.split()
这样的东西不容易映射到源代码。相反,您看到的是这些对象的PyCharm内部表示,它仅用于帮助自动完成和内联帮助。
import inspect
import os
print (inspect.getsource(os))
# You should see the source code here