# Cython - 概述
> 原文: [http://docs.cython.org/en/latest/src/quickstart/overview.html](http://docs.cython.org/en/latest/src/quickstart/overview.html)
[[Cython]](#cython) 是一種編程語言,它使 Python 語言的 C 語言擴展與 Python 本身一樣簡單。它旨在成為 [[Python]](#python) 語言的超集,為其提供高級,面向對象,函數式和動態編程。它的主要特性是支持任意的靜態類型聲明作為語言的一部分。源代碼被轉換為優化過的 C / C ++代碼并編譯為 Python 擴展模塊。這一特性使得程序可以執行非常快速并且能與外部 C語言庫的緊密集成,同時還能是程序員高能保持眾所周知的Python 語言開發效率。
主要的 Python 執行環境通常被稱為 CPython,因為它是用 C 語言編寫的。其他主要實現使用 Java(Jython [[Jython]](#jython) ),C#(IronPython [[IronPython]](#ironpython) )和 Python 本身(PyPy [[PyPy]](#pypy) )。用 C 和CPython編程有助于包裝許多通過 C 語言提供接口的外部庫。然而,即是是需要在 C 中編寫必要的膠水代碼這仍然是值得的,特別是對于那些只熟悉 Python 這樣的高級語言的程序員而不熟悉像 C 這樣的接近底層的語言。
最初基于著名的 Pyrex [[Pyrex]](#pyrex) ,Cython 項目通過源代碼編譯器將 Python 代碼轉換為等效的 C 代碼來解決這個問題。此代碼在 CPython 運行時環境中執行,但是卻以編譯后的 C程序那般速度執行,并且能夠直接調用 C語言庫。同時,它保留了 Python 源代碼的原始接口,這使得它可以直接使用Python語言代碼。這些雙重特性使 Cython 的這兩個主要使用場景成為可能:使用快速二進制模塊來擴展 CPython 解釋器,以及將 Python 代碼與外部 C 庫連接。
與此同時 Cython 可以編譯(大多數)常規 Python 代碼,而且生成的 C 代碼通常可以從 Python 和 C 類型的任意靜態類型聲明中獲得主要(并且有時很驚人)的速度上的提升。這些允許 Cython 將 C 語義分配給代碼的一部分,并將它們轉換為非常高效率的 C 代碼。因此,類型聲明可用于兩個目的:將代碼段從動態 Python 語義轉換為靜態和快速 C 語義,還用于直接操作外部庫中定義的類型。因此,Cython 將這兩個世界合并為一種非常廣泛適用的編程語言。
> [Cython]](#id1) | G. Ewing,R。W. Bradshaw,S。Behnel,D。S. Seljebotn 等人,Cython 編譯器, [https://cython.org/](https://cython.org/) 。
> [[IronPython]](#id4) | Jim Hugunin 等人, [https://archive.codeplex.com/?p=IronPython](https://archive.codeplex.com/?p=IronPython) 。
> [[Jython]](#id3) | J. Huginin,B。Warsaw,F.Bock,et al。,Jython:Python for the Java platform, [http://www.jython.org](http://www.jython.org) 。
> [[PyPy]](#id5) | PyPy Group,PyPy:用 Python 編寫的 Python 實現, [https://pypy.org/](https://pypy.org/) 。
> [[派熱克斯]](#id6) | G. Ewing,Pyrex:Python 的 C-Extensions, [https://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/](https://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/)
> [[Python]](#id2) | G. van Rossum 等人,Python 編程語言, [https://www.python.org/](https://www.python.org/) 。
- Cython 3.0 中文文檔
- 入門
- Cython - 概述
- 安裝 Cython
- 構建 Cython 代碼
- 通過靜態類型更快的代碼
- Tutorials
- 基礎教程
- 調用 C 函數
- 使用 C 庫
- 擴展類型(又名.cdef 類)
- pxd 文件
- Caveats
- Profiling
- Unicode 和傳遞字符串
- 內存分配
- 純 Python 模式
- 使用 NumPy
- 使用 Python 數組
- 進一步閱讀
- 相關工作
- 附錄:在 Windows 上安裝 MinGW
- 用戶指南
- 語言基礎
- 擴展類型
- 擴展類型的特殊方法
- 在 Cython 模塊之間共享聲明
- 與外部 C 代碼連接
- 源文件和編譯
- 早期綁定速度
- 在 Cython 中使用 C ++
- 融合類型(模板)
- 將 Cython 代碼移植到 PyPy
- Limitations
- Cython 和 Pyrex 之間的區別
- 鍵入的內存視圖
- 實現緩沖協議
- 使用并行性
- 調試你的 Cython 程序
- 用于 NumPy 用戶的 Cython
- Pythran 作為 Numpy 后端