千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:合肥千锋IT培训  >  技术干货  >  Python 的缺点以及这些缺点是否会致命

Python 的缺点以及这些缺点是否会致命

来源:千锋教育
发布人:xqq
时间: 2023-11-09 11:21:07

像所有的技术一样,Python也有它的弱点。我将一一介绍最重要的缺陷,并评估这些缺陷是否致命。

速度

Python很慢。真的,非常非常慢。平均而言,使用Python完成一项任务所需的时间,是任何其他编程语言的2~10倍。

造成这种情况的原因有很多。其中之一是,它是动态类型的,记住,你不需要像在其他编程语言那样指定数据类型。这意味着需要使用大量的内存,因为程序需要为它在任何情况下都能工作的每个变量预留足够的空间,而且大量的内存使用意味着大量的计算时间。

另一个原因是,Python一次只能执行一个任务。这是采用灵活数据类型带来的后果:Python需要确保每个变量只有一种数据类型,而并行化的进程可能会弄乱这一点。

相比之下,一般的Web浏览器可以同时运行十几个不同的线程。此外,还有其他一些理论。

但说到底,这些速度问题都无关紧要。计算机和服务器已经变得如此便宜,以至于我们谈论的只是几分之一秒的时间。实际上,最终用户并不在乎他们的应用程序是在0.001秒还是0.01秒内加载的。

作用域

最初,Python的作用域是动态的。这基本上意味着,要计算表达式,编译器首先搜索当前块,然后依次搜索所有调用函数。这就是大多数现代编程语言使用静态作用域的原因。

Python曾试图过渡到静态作用域,但搞砸了。通常情况下,内部作用域(例如函数中的函数)能够查看和更改外部作用域。但在Python中,内部作用域只能看到外部作用域,而不能改变它们,这就导致了很多混乱的情形。

Lambda

尽管Python具有所有的灵活性,但Lambda的使用还是相当受限的。Lambda只能是Python中的表达式,不能是语句。

另一方面,变量声明和语句始终是语句。这意味着Lambda并不能用于它们。

表达式和语句之间的这种区别是相当随意的,在其他编程语言中并不会存在。

空白使代码的可读性更强,但可维护性却更低了。

在Python中,你可以使用空格和缩进来表示不同级别的代码。这使得它在视觉上具有吸引力,理解起来也更直观。

其他编程语言,如C++,则更多地依赖花括号和分号。尽管这可能在视觉上不够吸引人,对初学者也不太友好,但是它使代码更易于维护。对于较大的项目,这个方法更有用。

像Haskell这样的新语言解决了这个问题:它们依赖于空格,但为那些希望不使用空格的人提供了另一种语法。

移动开发

我们正在见证从台式计算机到智能手机的转变,很明显,我们需要强大的语言来开发移动软件。

但使用Python开发的移动应用并不多。不过,这并不意味着它做不到—有一个名为Kivy的Python软件包就是专门用于开发移动应用的。

但是Python在设计时并没有考虑到移动开发。因此,即使它可能会为基本任务产生差强人意的结果,你最好的选择是使用一种专为移动开发而创建的编程语言。一些广泛使用的移动编程框架包括ReactNative、Flutter、Iconic和Cordova。

需要明确的是,笔记本计算机和台式计算机应该会在未来很多年里继续存在。但是,由于移动设备的流量早已超过台式计算机,所以可以肯定地说,学会Python并不足以成为经验丰富的全能开发人员。

运行时错误

Python脚本不是先编译后执行的。相反,它会在每次执行时编译,因此,任何编码错误都会在运行时显示出来。这会导致性能差、耗时长,并且需要进行大量测试。比如,很多很千锋试。

这特别适合初学者,因为测试可以教会他们很多东西。但是对于经验丰富的开发人员来说,必须用Python调试复杂的程序会让他们出错。这种性能的缺乏是在Python上设置时间戳的最大因素。

以上内容为大家介绍了Python的缺点以及这些缺点是否会致命,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:千锋教育。http://www.mobiletrain.org/

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

python依赖安装失败怎么办

2023-11-09

python如何检测字符串是不是全为字母?

2023-11-09

python如何获取程序执行时间?

2023-11-09

最新文章NEW

python找不到指定模块怎么办

2023-11-09

python如何去空格和回车?

2023-11-09

python使用matplotlib绘图怎么在线上标注?

2023-11-09

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>