[英]How to read Python source code directly from IDE
正如你所說,一大塊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()
找到所需內容。
import inspect
import os
print (inspect.getsource(os))
# You should see the source code here
如上例所示,這對某些內置函數不起作用。
要檢查用C編寫的內容,您應該使用另一種方法來檢查此鏈接 , 該鏈接是python解釋器的官方存儲庫。 大多數對象類型都列在cpython/Objects
文件夾中。 例如,這是C中列表對象的實現,對於內置模塊,請參考這個。
我相信這就是你想要的。 如果您需要幫助,請發表評論。
通常PyCharm可以做你想要的,除非Ctrl + Click引導你進入C函數。 在這種情況下,您將獲得關於函數簽名和返回值等的最少信息,就像您在帖子中顯示的那樣。 由於效率原因,內置函數主要用C語言編寫,所以如果你想查看C代碼,你必須下載CPython源代碼並深入研究它。 另一種方法是下載PyPy源代碼並查看它。 盡管如此,您仍然可以使用PyCharm從標准庫中用Python編寫的模塊中讀取代碼,這對您的學習過程很有幫助。 相信我,你會在那里找到優質的代碼。
我認為Python非常友好,因為它具有高度的封裝性。 也正是因為我們並不總是太關注底層實施,並提高我們的效率。 因此,您可以通過單擊方法名稱跳轉到方法定義頁面,並了解此頁面的代碼是否足夠。 除非你想參與Python語言本身的開發。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.