返回介绍

好吧 Python 的缺点是什么呢?

发布于 2024-01-29 22:24:17 字数 883 浏览 0 评论 0 收藏 0

在经过17年的Python使用和12年Python的教学之后,我们发现Python唯一的缺点就是,在目前现有的实现方式下,与C和C++这类编译语言相比,Python的执行速度还不够快。

本书后面将对实现方式的概念进行详细阐述。简而言之,目前Python的标准实现方式是将源代码的语句编译(或者说是转换)为字节码的形式,之后再将字节码解释出来。由于字节码是一种与平台无关的格式,字节码具有可移植性。然而,因为Python没有将代码编译成底层的二进制代码(例如,Intel芯片的指令),一些Python程序将会比像C这样的完全编译语言慢一些。

程序的类型决定了是否需要关注程序的执行速度。Python已经优化过很多次,并且Python代码在绝大多数应用领域运行的速度也足够快。此外,一旦使用Python脚本做一些“现实”世界的事情,程序实际上是以C语言的速度运行的,例如,处理某一个文件或构建一个用户图形界面(GUI)。因为在这样的任务中,Python代码会立即发送至Python解释器内部已经编译的C代码。究其根源,Python开发速度带来的效益往往比执行速度带来的损失更为重要,特别是在现代计算机的处理速度情况下。

即使当今CPU的处理速度很快,在一些应用领域仍然需要优化程序的执行速度。例如,数值计算和动画,常常需要其核心数值处理单元至少以C语言的速度(或更快)执行。如果在以上领域工作,通过分离一部分需要优化速度的应用,将其转换为编译好的扩展,并在整个系统中使用Python脚本将这部分应用连接起来,仍然可以使用Python。

本书我们将不会再谈论这个扩展的问题,但这却是一个我们先前所提到过的Python作为控制语言角色的鲜活例子。NumPy是采用双语言混编策略的一个重要例子:作为一个Python的数值计算扩展,NumPy将Python变为一个高效并简单易用的数值计算编程工具。你也许不会在自己的Python工作中采用这种扩展的方式编程,但是如果需要的话,Python也是能够提供这种强大的优化机制的。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文