導航:首頁 > 源碼編譯 > python模塊源碼解讀

python模塊源碼解讀

發布時間:2022-09-23 15:09:46

python源代碼程序文件擴展名

python源文件後綴是py。
以 py 擴展名的文件是 Python 源碼文件,由 python.exe 解釋,可在控制台下運行。可用文本編輯器讀寫。
Python中經常使用的文件後綴名:
pyc
以 pyc 為擴展名的是Python的編譯文件。其執行速度快於 py 文件且不能用文本編輯編輯查看。所以 pyc 文件往往代替 py 文件發布。
Python 在執行時,首先會將 py 文件中的源代碼編譯成 PyCodeObject 寫入 pyc 文件,再由虛擬機執行 PyCodeObject。
當 Python 執行 import 時會先尋找對應的 pyc或 pyd(dll)文件,如果沒有則將對應的py文件編譯寫入 pyc 文件。pyc文件也可以通過 python -m py_compile src.py 生成。
pyw
pyw 文件與 pyc 文件相似,但 pyw 執行的時候不會出控制台窗口。開發(純圖形界面程序)時可以暫時把 pyw 改成 py 以調出控制台窗口調試。
pyo
pyo 是優化編譯後的程序,不能用文本編輯器編輯。 python -O source.py 即可將源程序編譯為 pyo 文件。
pyd
pyd 一般是 Python 外的其他語言如 C/C++ 編寫的 Python 擴展模塊,即 Python 的一個動態連接庫,與 dll 文件相當。在Linux系統中一般為.so文件

❷ 如何查看python源代碼

眾所周知,Python內建了許多函數模塊,並且我們可能還會安裝許多第三方模塊等等。

下面以getpass為例查看其源代碼。

1.help(getpass)

輸入該命令找到file路徑,並且可以查看其其提供的功能。

2.利用getpass.__file__查看位置

最後找到該文件,用記事本或其他編輯器打開即可。

3.PyCharm編輯器

在該類或方法上按住「ctr+滑鼠左鍵」可以快速查看源代碼。

4.dir(對象名)

該方法可以快速查看有哪些方法。

想要查看每個功能的解釋,用help(type(對象名))

python學習網,大量的免費python視頻教程,歡迎在線學習!

❸ 《Python源碼剖析深度探索動態語言核心技術》pdf下載在線閱讀,求百度網盤雲資源

《Python源碼剖析》(陳儒)電子書網盤下載免費在線閱讀

資源鏈接:

鏈接:https://pan..com/s/1dtk-nY5HtgXS3CIBVHJCRA

提取碼:4zk4

書名:Python源碼剖析

作者:陳儒

豆瓣評分:8.8

出版社:電子工業出版社

出版年份:2008-6

頁數:480

內容簡介:

作為主流的動態語言,Python不僅簡單易學、移植性好,而且擁有強大豐富的庫的支持。此外,Python強大的可擴展性,讓開發人員既可以非常容易地利用C/C++編寫Python的擴展模塊,還能將Python嵌入到C/C++程序中,為自己的系統添加動態擴展和動態編程的能力。.

為了更好地利用Python語言,無論是使用Python語言本身,還是將Python與C/C++交互使用,深刻理解Python的運行原理都是非常重要的。本書以CPython為研究對象,在C代碼一級,深入細致地剖析了Python的實現。書中不僅包括了對大量Python內置對象的剖析,更將大量的篇幅用於對Python虛擬機及Python高級特性的剖析。通過此書,讀者能夠透徹地理解Python中的一般表達式、控制結構、異常機制、類機制、多線程機制、模塊的動態載入機制、內存管理機制等核心技術的運行原理,同時,本書所揭示的動態語言的核心技術對於理解其他動態語言,如 Javascript、Ruby等也有較大的參考價值。..

本書適合於Python程序員、動態語言愛好者、C程序員閱讀

❹ Python如何解析網頁源碼里沒有的,但在審查

browser = webdriver.Chrome(executable_path=chrome_path)browser.get(url) #這個就是chrome瀏覽器中的element的內容了browser.find_elements_by_tag_name('td') #獲取element中 td下的內容!

❺ python源代碼

python在python shell中可以使用help(模塊名)來查看模塊的源碼和其提供的功能;如果使用PyCharm的話,查看模塊、類、方法的源碼只需要名稱上按住「ctr+滑鼠左鍵」可以快速查看源代碼。

❻ python object源碼怎麼看

Python創建模塊及模塊導入的方法。具體分析如下: python學習手冊中寫道: 定義模塊,只要使用文本編輯器,把一些python代碼輸入到文本中,然後以.py為後綴名進行保存,任何此類文件都會被認為是python模塊。

❼ 初學Python,有哪些 Pythonic 的源碼推薦閱讀

如果一定要推薦一些 python 的源碼去讀,我的建議是標准庫里關於網路的代碼。從 SocketServer 開始,補上 socket
模塊的知識,熟悉 TCP/UDP 編程,然後了解 Mixin 機制的最佳示例
SocketServer.{ForkingMixIn|ThreadingMixIn},借這個機會了解 thread/threading
模塊,這時會對並發量提出新的要求,就可以讀 select 模塊,開始對 select/{epoll|kqueue}
有深刻理解,搞懂以後就可以接觸一下非同步框架 asyncore 和 asynchat。這時開始出現分岔。如果是做 game 等以 TCP/UDP
協議為基礎的應用,可以去讀 greenlet 和 gevent,如果是做 web,則走下一條路。

做 web,讀
BaseHTTPServer、SimpleHTTPServer 和 CGIHTTPServer,讀
cgi/cgitb,自己隨意寫框架,讀cookielib,讀 wsgiref,這時候自己寫一個簡便的 web framework 就 so
easy 了,老闆再也不擔心你寫 web 了,選擇 flask/web.py/django/pyramid 都心中有數了。因為走的是 web
的路,所以難免要調用一下別人的 api,

❽ python源碼解析這本書大家都看了么

1.話說,如果沒有一定的基礎,以及明確自己的目的。你就是神人,花1小時看完源碼,也都是沒有意義的。2.就像你如果只是去背單詞,看單詞表,都看完,但是不懂含義,也是沒價值的。3.應該清楚自己要做什麼。然後再去找合適的辦法,才是解決問題的正常思路。4.單獨回答你這個問題則是:從幾天,到幾個月,或者幾年具體多少天,取決於:你本身python的基礎想要實現什麼目的比如,對於python不熟悉,那可能有些人需要幾年,才能完全看懂源碼。當然,你要是把python源代碼當做單詞朗讀一樣,只是看一眼,那就是另說了。對於Python很熟悉的,只需要很快速的,看各種功能如何實現,找到對應的介面,研究對應的實現機制。則也是時間長短不同。

❾ Python源碼剖析的作品目錄

第0章 PYTHON源碼剖析--編譯PYTHON
0.1 PYTHON總體架構
0.2 PYTHON源代碼的組織
0.3 WINDOWS環境下編譯PYTHON
0.4 UNIX/LINUX環境下編譯PYTHON
0.5 修改PYTHON源代碼
0.6 通往PYTHON之路
0.7 一些注意事項
第1部分 PYTHON內建對象
第1章 PYTHON對象初探
1.1 PYTHON內的對象
1.1.1 對象機制的基石——PyObject
1.1.2 定長對象和變長對象
1.2 類型對象
1.2.1 對象的創建
1.2.2 對象的行為
1.2.3 類型的類型
1.3 PYTHON對象的多態性
1.4 引用計數
1.5 PYTHON對象的分類
第2章 PYTHON中的整數對象
2.1 初識PYINTOBJECT對象
2.2 PYINTOBJECT對象的創建和維護
2.2.1 對象創建的3種途徑
2.2.2 小整數對象
2.2.3 大整數對象
2.2.4 添加和刪除
2.2.5 小整數對象池的初始化
2.3 HACK PYINTOBJECT
第3章 PYTHON中的字元串對象
3.1 PYSTRINGOBJECT與PYSTRING_TYPE
3.2 創建PYSTRINGOBJECT對象
3.3 字元串對象的INTERN機制
3.4 字元緩沖池
3.5 PYSTRINGOBJECT效率相關問題
3.6 HACK PYSTRINGOBJECT
第4章 PYTHON中的LIST對象
4.1 PYLISTOBJECT對象
4.2 PYLISTOBJECT對象的創建與維護
4.2.1 創建對象
4.2.2 設置元素
4.2.3 插入元素
4.2.4 刪除元素
4.3 PYLISTOBJECT對象緩沖池
4.4 HACK PYLISTOBJECT
第5章 PYTHON中的DICT對象
5.1 散列表概述
5.2 PYDICTOBJECT
5.2.1 關聯容器的entry
5.2.2 關聯容器的實現
5.3 PYDICTOBJECT的創建和維護
5.3.1 PyDictObject對象創建
5.3.2 PyDictObject中的元素搜索
5.3.3 插入與刪除
5.3.4 操作示例
5.4 PYDICTOBJECT對象緩沖池
5.5 HACK PYDICTOBJECT
第6章 最簡單的PYTHON模擬——SMALL PYTHON
6.1 SMALL PYTHON
6.2 對象機制
6.3 解釋過程
6.4 互動式環境
第2部分 PYTHON虛擬機
第7章 PYTHON的編譯結果--CODE對象與PYC文件
7.1 PYTHON程序的執行過程
7.2 PYTHON編譯器的編譯結果--PYCODEOBJECT對象
7.2.1 PyCodeObject對象與pyc文件
7.2.2 Python源碼中的PyCodeObject
7.2.3 pyc文件
7.2.4 在Python中訪問PyCodeObject對象
7.3 PYC文件的生成
7.3.1 創建pyc文件的具體過程
7.3.2 向pyc文件寫入字元串
7.3.3 一個PyCodeObject,多個PyCodeObject
7.4 PYTHON的位元組碼
7.5 解析PYC文件
第8章 PYTHON虛擬機框架
8.1 PYTHON虛擬機中的執行環境
8.1.1 Python源碼中的PyFrameObject
8.1.2 PyFrameObject中的動態內存空間
8.1.3 在Python中訪問PyFrameObject對象
8.2 名字、作用域和名字空間
8.2.1 Python程序的基礎結構——mole
8.2.2 約束與名字空間
8.2.3 作用域與名字空間
8.3 PYTHON虛擬機的運行框架
8.4 PYTHON運行時環境初探
第9章 PYTHON虛擬機中的一般表達式
9.1 簡單內建對象的創建
9.2 復雜內建對象的創建
9.3 其他一般表達式
9.3.1 符號搜索
9.3.2 數值運算
9.3.3 信息輸出
第10章 PYTHON虛擬機中的控制流
10.1 PYTHON虛擬機中的IF控制流
10.1.1 研究對象--if_control.py
10.1.2 比較操作
10.1.3 指令跳躍
10.2 PYTHON虛擬機中的FOR循環控制流
10.2.1 研究對象——for_control.py
10.2.2 循環控制結構的初始化
10.2.3 迭代控制
10.2.4 終止迭代
10.3 PYTHON虛擬機中的WHILE循環控制結構
10.3.1 研究對象——while_control.py
10.3.2 循環終止
10.3.3 循環的正常運轉
10.3.4 循環流程改變指令之continue
10.3.5 循環流程改變指令之break
10.4 PYTHON虛擬機中的異常控制流
10.4.1 Python中的異常機制
10.4.2 Python中的異常控制語義結構
第11章 PYTHON虛擬機中的函數機制
11.1 PYFUNCTIONOBJECT對象
11.2 無參函數調用
11.2.1 函數對象的創建
11.2.2 函數調用
11.3 函數執行時的名字空間
11.4 函數參數的實現
11.4.1 參數類別
11.4.2 位置參數的傳遞
11.4.3 位置參數的訪問
11.4.4 位置參數的默認值
11.4.5 擴展位置參數和擴展鍵參數
11.5 函數中局部變數的訪問
11.6 嵌套函數、閉包與DECORATOR
11.6.1 實現閉包的基石
11.6.2 閉包的實現
11.6.3 Decorator
第12章 PYTHON虛擬機中的類機制
12.1 PYTHON中的對象模型
12.1.1 對象間的關系
12.1.2 和
12.2 從TYPE對象到CLASS對象
12.2.1 處理基類和type信息
12.2.2 處理基類列表
12.2.3 填充tp_dict
12.3 用戶自定義CLASS
12.3.1 創建class對象
12.4 從CLASS對象到INSTANCE對象
12.5 訪問INSTANCE對象中的屬性
12.5.1 instance對象中的__dict__
12.5.2 再論descriptor
12.5.3 函數變身
12.5.4 無參函數的調用
12.5.5 帶參函數的調用
12.5.6 Bound Method和Unbound Method
12.6 千變萬化的DESCRIPTOR
第3部分 PYTHON高級話題
第13章 PYTHON運行環境初始化
13.1 線程環境初始化
13.1.1 線程模型回顧
13.1.2 初始化線程環境
13.2 系統MODULE初始化
13.2.1 創建__builtin__ mole
13.2.2 創建sys mole
13.2.3 創建__main__ mole
13.2.4 設置site-specific的mole的搜索路徑
13.3 激活PYTHON虛擬機
13.3.1 互動式運行方式
13.3.2 腳本文件運行方式
13.3.3 啟動虛擬機
13.3.4 名字空間
第14章 PYTHON模塊的動態載入機制
14.1 IMPORT前奏曲
14.2 PYTHON中IMPORT機制的黑盒探測
14.2.1 標准import
14.2.2 嵌套import
14.2.3 import package
14.2.4 from與import
14.2.5 符號重命名
14.2.6 符號的銷毀與重載
14.3 IMPORT機制的實現
14.3.1 解析mole/package樹狀結構
14.3.2 載入mole/pakcage
14.3.3 from與import
14.4 PYTHON中的IMPORT操作
14.4.1 import mole
14.4.2 import package
14.4.3 from & import
14.4.4 import & as
14.4.5 reload
14.4.6 內建mole:imp
14.5 與MODULE有關的名字空間問題
第15章 PYTHON多線程機制
15.1 GIL與線程調度
15.2 初見PYTHON THREAD
15.3 PYTHON線程的創建
15.3.1 建立多線程環境
15.3.2 創建線程
15.4 PYTHON線程的調度
15.4.1 標准調度
15.4.2 阻塞調度
15.5 PYTHON子線程的銷毀
15.6 PYTHON線程的用戶級互斥與同步
15.6.1 用戶級互斥與同步
15.6.2 Lock對象
15.7 高級線程庫——THREADING
15.7.1 Threading Mole概述
15.7.2 Threading的線程同步工具
15.7.3 Threading中的Thread
第16章 PYTHON的內存管理機制
16.1 內存管理架構
16.2 小塊空間的內存池
16.2.1 Block
16.2.2 Pool
16.2.3 arena
16.2.4 內存池
16.3 循環引用的垃圾收集
16.3.1 引用計數與垃圾收集
16.3.2 三色標記模型
16.4 PYTHON中的垃圾收集
16.4.1 可收集對象鏈表
16.4.2 分代的垃圾收集
16.4.3 Python中的標記-清除方法
16.4.4 垃圾收集全景
16.4.5 Python中的gc模塊
16.4.6 總結

閱讀全文

與python模塊源碼解讀相關的資料

熱點內容
百度雲黑馬android 瀏覽:771
java格式化long 瀏覽:893
汽車如何加密文檔 瀏覽:625
公司理財第9版pdf 瀏覽:524
微信個人表情在文件夾 瀏覽:833
加密狗密碼監控 瀏覽:437
重載發生在編譯時 瀏覽:417
怎麼用app買東西 瀏覽:532
ug後處理多坐標宏命令 瀏覽:34
性教育pdf 瀏覽:863
解釋方式編譯方式名詞解釋 瀏覽:851
wrf編譯出現module 瀏覽:616
插入演算法最基礎代碼 瀏覽:27
powermill和ug編程 瀏覽:843
vf命令按鈕 瀏覽:283
塗鴉王國app怎麼 瀏覽:37
oppo如何關閉加密應用震動 瀏覽:802
直接拍PDF 瀏覽:580
伺服器有一個自動分配的ip地址嗎 瀏覽:470
程序員必備10個app 瀏覽:220