5.Python 和 C++ 的对比-灵析社区

菜鸟码转

1.Python 语言:

Python 是一种广泛使用的解释型、高级和通用的编程语言。Python 支持多种编程范型,包括函数式、指令式、反射式、结构化和面向对象编程。它拥有动态类型系统和垃圾回收功能,能够自动管理内存使用,并且其本身拥有一个巨大而广泛的标准库。它的语言结构以及面向对象的方法旨在帮助程序员为小型的和大型的项目编写清晰的、合乎逻辑的代码。吉多·范罗苏姆于 1991 年首次发布 Python 0.9.0。Python 2.0 于 2000 年发布并引入了新功能。Python 3.0 于 2008 年发布,是该语言的主要修订版,并非完全向后兼容。Python 2 于 2020 年随 2.7.18 版停止支持。Python 的设计哲学强调代码的可读性和简洁的语法,尤其是使用空格缩进划分代码块。相比于 C 或 Java,Python 让开发者能够用更少的代码表达想法。Python 解释器本身几乎可以在所有的操作系统中运行。Python 的官方解释器 CPython 是用 C 语言编写的,它是一个由社群驱动的自由软件,目前由 Python 软件基金会管理。Python 是最受欢迎的编程语言之一。

Python 是多泛型编程语言。它完全支持结构化编程和面向对象编程,还有很多特征支持函数式编程和元编程比如元对象协议(元类和魔术方法)。通过扩展还可以支持很多范型,包括面向切面编程、契约式设计和逻辑编程。

Python 使用动态类型,在内存管理上采用引用计数和环检测相结合的垃圾收集器。它的特征还有动态名字解析(后期绑定(英语:late binding)),即在程序执行期间绑定方法和变量的名字。

Python 对遵循 LISP 传统的函数式编程提供了有限的支持,它提供了 map、filter 和 reduce 函数;列表推导式、字典、集合(英语:Set (abstract data type))和生成器表达式。标准库中的模块 functools 和 itertools,实现了从 Haskell 和 Standard ML 借鉴来的函数式工具。

Python 的设计哲学是“优雅”、“明确”、“简单”。它的重要准则被称为 “Python 之禅”。在 Python 解释器内运行 import this 可以获得完整的列表。Python 遵循的设计理念:

  • 优美优于丑陋。明了优于隐晦。
  • 简单优于复杂。复杂优于凌乱。
  • 扁平优于嵌套。稀疏优于稠密。
  • 可读性很重要。

2.两者之间的比较:

  • 二者的相同之处:

C++ 与 Python 均支持面向对象,二者均可用来编写大型应用程序。

  • 二者的不同之处:

从语言自身来说,Python 为脚本语言,解释执行,不需要经过编译,所有的 python 源代码都是经过 Python 解释器;C++ 是一种需要编译后才能运行的语言,在特定的机器上编译后运行。

Python 变量的作用域不仅局限于(while,for)循环内,在循环外还可以继续访问在循环内定义的变量;C++ 则不允许循环外访问循环内定义的变量。

Python 没有严格限定函数的参数类型和返回值类型;C++ 则严格限定函数参数和返回值的类型。

从运行效率来说,C++ 运行效率高,安全稳定。Python 代码和 C++ 最终都会变成 CPU 指令来跑,但一般情况下,比如反转和合并两个字符串,Python 最终转换出来的 CPU 指令会比 C++ 多很多。首先,Python 中涉及的内容比 C++ 多,经过了更多层,Python 中甚至连数字都是 object;其次,Python 是边解释边执行,和物理机 CPU 之间多了解释器这层,而 C++ 是编译执行的,直接就是机器码,编译的时候编译器又可以进行一些优化。

从开发效率来说,Python 开发效率高。Python 一两句代码就能实现的功能,C++ 往往需要更多的代码才能实现。

书写格式和语法不同,Python 的语法格式不同于其 C++ 定义声明才能使用,而且极其灵活,完全面向更上层的开发者,C++ 是严格静态类型声明语言,编译器在进行编译时必须经过严格的静态类型检查,如果发现类型检查错误,则中止编译;Python 为动态类型语言,我们在编写代码时不用指定变量的类型,只在执行时才会进行变量类型推导,确定变量类型。

C++ 可以直接用来操纵硬件,适合用来作为系统编程;Python 作为一门脚本语言,功能小巧而精湛,非常适合做工具开发和运维开发。

阅读量:2009

点赞量:0

收藏量:1