Skip to Main Content
高效能PYTHON程式設計
book

高效能PYTHON程式設計

by Micha Gorelick, Ian Ozsvald
August 2015
Intermediate to advanced content levelIntermediate to advanced
384 pages
7h 42m
Chinese
GoTop Information, Inc.
Content preview from 高效能PYTHON程式設計
編譯成 C
|
179
CPython 模組
最後,我們總是能夠直接進入 CPython API 的層級,並且撰寫 CPython 模組,這要求我
們以 CPython 被開發的相同方式撰寫程式碼,並且處理在我們的程式碼與 CPython 實作
之間的所有互動。
好處是這具有驚人的可移植性(取決於 Python 版本)。我們不需要任何外部模組或程式
庫,只需要 C 編譯器和 Python!然而,這不必然能夠順利擴展到新版 Python,例如,
讓針對 Python 2.7 撰寫的 CPython 模組順利運作在 Python 3
然而,可移植性的代價不斐—你必須負責處理在你的 Python 程式碼與模組之間的介面
的每個面向,這會讓最簡單的任務都得耗費幾十行程式碼才能夠完成。例如,要跟範
7-20 的擴散程式庫互動,僅為了讀取函式引數並且剖析它們,就必須撰寫 28 行程
式碼(範例 7-25)。當然,這意味著,你能夠細微地控制究竟要發生什麼事,你甚至可
以手動地為 Python 的垃圾收集改變參考計數(這可能是在建立 CPython 模組處理原生
Python 型別時的諸多痛苦的根源。因為如此,產生的程式碼傾向於比其他介面方法更快
一點。
總括來說,這個方法應該被當作最後的手段。雖然撰寫 CPython 模組相
當具有教育性,但生成的程式碼並不像其他方法那樣可重利用或者好維
護。為模組做細微的改變往往需要完全重寫它。事實上,我們將模組程式
碼與編譯它所需的
setup.py
(範例 7-26)當作是一件值得警惕的事情。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

流畅的Python

流畅的Python

Luciano Ramalho
手把手教会你linux

手把手教会你linux

桑德.范.乌格特

Publisher Resources

ISBN: 9789863477105