编程语言之Python
2010-04-15 14:27:58 阿炯

Python编程语言广受开发者的喜爱,并被列入LAMP (Linux, Apache, MySQL 以及Python/Perl/PHP)中。


尽管它在一段时期曾引领了动态语言,但这门颇受好评的编程语言却又从未大红大紫过;是什么让它在开发领域尤其是Web应用开发方面如此受宠呢?原因如下:
1.动态语言
是一门解释性的、互动性的、面向对象的编程语言。它包含模块、异常、动态类型以及高级动态数据类型和类。

2.可以在任意环境下运行
Python几乎在任何操作系统环境下都可用:Windows, Linux/Unix, OS/2, Mac, Amiga以及其它。有运行在Microsoft和Java平台上的版本,也有运行在Nokia Series 60上的。同样的源代码可以不经修改而跨越运行在所有的环境上。

3.历史悠久
发明Python的念头始于1980s,1989年12月Guido van Rossum开始实施,本意是作为ABC编程语言的一种继承:能够异常处理、与Amoeba操作系统交互。Van Rossum是Python的主要作者,他也影响着Python之后的发展。

4.Python 2.0
2.0发布于2000年10月16日,内含很多新特性包括:一个完整的垃圾收集并支持Unicode。而最重要的改变是它自己的开发进程,转向了一个更加透明和社区支持的进程。

5.Python 3.0
3.0是一个主要的、不向后兼容的版本,发布于2008年12月3日。它经过了很长时间的测试,许多它的主要特性回馈到向后兼容的Python 2.6。

6.广泛用于流行网址
大的Python用户包括YouTube, Yahoo, Google, Industrial Light & Magic, NASA,马里兰大学等,并用于各种类型的应用中。

7.很多流行的软件用Python编写
用其编写的流行软件包括Django、TurboGears Web开发框架以及Zope Web应用服务器。

8.寓编程于乐
其开发者的一个重要目的就是以使用Python为乐。这也反映在了它早期的命名上:根据英国电视系列节目“Monty Python's Flying Circus”以及电影“Monty Python and the Holy Grail”而来。在示范代码中有一个使用Monty Python的练习,而且有时候采用好玩的方式来制作指导和参考材料。

9.可运行在.NET和JVM上
 开发者可以将Python与COM(Component Object Model)、微软的.NET以及 CORBA (Common Object Request Broker Architecture)结合。Java开发者可以使用Jython作为JVM上Python的实现;.NET则可以使用IronPython作为 Python for .NET或者Python for .NET。

10.支持多种集成技术
Python同样支持ICE (Internet Communications Engine)和许多其他集成技术。

11.Python“内置电池”
其粉丝使用“内置电池”(batteries included)来描述Python的程序标准库,它覆盖范围从不同步程序到.zip文件。语言本身也极富有灵活性从而可以处理任何方面的问题。开发者 只用三行代码就可以构建自己的Web服务器,或者他们可以使用Python中可变类(meta-classes)、duck typing等特性构建灵活的数据驱动代码。

12.用Python“打包”
如果你发现Python不能编写的程序,或者需要低级别的代码,你可以用C或者C++编写扩展模块,然后用SWIG(Simplified Wrapper and Interface Generator)或者Boost将已有的代码打包。打包后的模块就像你用本地Python代码编写的一样。

13.Python很主流
根据Tiobe Programming Community Index的2010年三月的排行,Python排名第七,排在Java, C, PHP, C++, Visual Basic 和 C#之后。

14.Google App Engine
 当Google在2008年4月发布Google App Engine云开发平台时,首先和唯一支持的语言就是Python。

15.Python集成开发环境
 比较知名的IDE包括Boa Constructor:是一款跨平台的Python开发IDE;EasyEclipse,开源的PythonIDE;Eric、PIDA、SPE、 Webware、Wing IDE等等。

2023年7月下旬,Cython 3.0 正式发布,“它在各个方面都优于之前的任何其他 Cython 版本。它更加 Python 化,与 C 和 C++ 集成得更好,支持更多 Python 实现和配置,提供了许多很棒的新语言特性。更快、更安全、更易用。”新的语言特性包括:
Python 3 默认语法和语义
纯 Python 代码中的 Cython 类型注释
自动 NumPy ufunc 生成
快速 @dataclass 和 @total_ordering 扩展类型
默认情况下 C 函数中的安全异常传播
Cython 代码中的 Unicode 标识符

Cython 3 在许多方面对 Cython 进行了清理和现代化。它放弃了对早已过时的 Python 2 的支持,增加了对较新的 Python 功能(最高可达 Python 3.12)的支持,并扩展了纯 Python 模式(pure python)的使用。“简而言之,这允许将更广泛的 Python 代码编译为优化的 C 代码。据介绍,纯 Python 模式允许 Python 开发人员在 Cython 上使用现有的 Python linting 和代码分析工具。一直以来,Cython 都在使用自己独特的语法,即 Python 语法和 C 类型声明语法的混合体,这使得 Cython 很难使用 Python 工具进行故障排除。随着时间的推移,Cython 开始提供一种与传统 Python 语法完全兼容的替代语法,称为纯 Python 模式。绝大多数 Cython 函数现在都以纯 Python 模式显示,包括调用外部 C 库的函数。另一个主要改进是 NumPy 支持。Cython 3 增加了直接在 Cython 中编写 NumPy ufuncs 的功能,以便可以快速轻松地将用 Cython 编写的简单数值函数应用于 NumPy 数据结构的全部内容。

Cython 的内部结构也进行了重新设计,以更好地配合 Python 内部结构的不断变化。例如,Python 的新 "limited API" 公开了 Python API 的一个有保证的稳定子集,专门用于 Cython 经常 hook Python 解释器的工作类型。Cython 3 已初步支持 limited API,且这种支持还在不断增加。InfoWorld 指出,从长远来看,这意味着为某一版本 Python 构建的 Cython 扩展模块可以在未来版本的 Python 中运行,而无需重新编译。


最新版本:3.12
Python 3.12.0 已于2023年10月上旬正式发布。主要变化如下:
更灵活的 f-string 解析 (PEP 701)
详情查看 Python 改进 f-strings 语法,解除封印,整合到统一的解析器中
支持 buffer 协议 (PEP 688)
引入新的 debugging/profiling API (PEP 669)
支持具有单独全局解释器锁的分离子解释器 (PEP 684)
优化性能,例如 PEP 709 和对 BOLT 二进制优化器的支持,预计总体性能提高 5%
改进错误信息:支持 Linux perf 分析器在跟踪过程中报告 Python 函数名称
类型注释:为泛型类引入新的类型注释语法 (PEP 695);为方法引入新的 override 装饰器 (PEP 698)
更多信息可参考发行说明


官方主页:https://www.python.org/
该文章最后由 阿炯 于 2023-10-07 09:20:16 更新,目前是第 2 版。