Python的缺点和劣势分析

Python的短板

虽然Python拥有很多优点,但没有哪种编程语言能够胜任所有工 作,因此Python并不能完美地满足一切需求。如果要确定Python是否适 用于当前场景,还需要了解Python不擅长的领域。

Python不是速度最快的语言

Python的执行速度可能算得上是一个缺点。Python不是一个完全编 译的语言,而是先编译为内部字节码形式,然后交由Python解释器来执 行。Python为某些操作给出了高效的实现,例如,用正则表达式解析字 符串,可以做到与自己编写的任何C语言代码一样快,甚至会更快。但 在大多数情况下,采用Python会比C之类的语言实现更慢。但大家应该 保持以下观点:对绝大多数应用程序而言,现代计算机的计算能力都是 过剩的。开发速度比程序运行速度更为重要,而Python程序通常编写速 度会快很多。另外,用C或C ++编写的模块对Python进行扩展也比较容 易,程序当中的CPU密集型部分可以交由这些模块来运行。

Python的库不算最多

虽然Python自带了一批优秀的函数库集合,而且还有很多其他库可 用,但是Python在库的数量上并不算领先。像C、Java和Perl之类的编程 语言,可用的库集合数量更为庞大。它们在某些领域提供的解决方案是 Python所没有的,或者Python可能只提供了其中的一种可选方案。不过 这些往往是相当专业的领域,而Python是很容易扩展的,既可以用 Python,也可以用C或其他语言的现有库。对于几乎所有的常规计算问 题,Python库的支持能力都非常出色。

Python在编译时不检查变量类型

与某些其他编程语言不同,Python变量不像容器那样工作,而更像 是引用整数、字符串、类实例等各类对象的标签。这表示这些对象本身 虽然是有类型的,但引用它们的变量并没有与类型进行绑定。变量x可 能在某一行代码中引用一个字符串,而在另一行代码中引用一个整数:

>>> x = "2"
>>> x '2'   ⇽--- x为字符串"2"
>>> x = int(x) >>> x
2    ⇽--- 现在x为整数值2

Python将类型与对象关联,而不是与变量关联,这就意味着Python 解释器无法识别出变量类型不符的错误。假设变量count本来是用来保 存整数的,但如果将字符串"two"赋给它,在Python里也完全没问题。 传统的程序员将这种处理方式算作一个缺点,因为对代码失去了额外的 免费检查。但是这种错误通常不难发现和修复,Python的代码检测功能 可以避免类型错误的发生。大多数Python程序员都认为,动态类型的灵 活性是划得来的。

Python对移动应用的支持不足

在过去的10年中,移动设备的数量和种类都出现了爆炸式的增长, 到处都是智能手机、平板电脑、平板手机、Chromebook,运行的操作 系统也是五花八门。Python在移动计算领域并不算强大。虽然有解决方 案可选,但在移动设备上运行Python并不总是能一帆风顺,用Python编 写和发布商业应用还存在问题。

Python对多处理器的利用不充分

现在多核处理器已经普及,在很多情况下也都会带来性能的明显提 升。但是,由于具有名为全局解释器锁(global interpreter lock,GIL) 的特性,Python的标准版本并没有按照多内核来进行设计。详情请查看 David Beazley、Larry Hastings等人关于GIL的讨论视频,或者访问 Python wiki里的GIL页面。尽管用Python可以运行并发进程,但如果需 要“开箱即用”的并发能力,Python可能并不合适。

以上就是全部相关知识点,感谢大家的学习和对我们的支持。

(0)

相关推荐

  • python编程使用协程并发的优缺点

    协程 协程是一种用户态的轻量级线程,又称微线程. 协程拥有自己的寄存器上下文和栈,调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈.因此:协程能保留上一次调用时的状态(即所有局部状态的一个特定组合),每次过程重入时,就相当于进入上一次调用的状态,换种说法:进入上一次离开时所处逻辑流的位置. 优点: 1.无需线程上下文切换的开销 2.无需原子操作锁定及同步的开销 3.方便切换控制流,简化编程模型 4.高并发+高扩展性+低成本:一个CPU支持上万的协程都不

  • Python Web开发模板引擎优缺点总结

    做 Web 开发少不了要与模板引擎打交道.我陆续也接触了 Python 的不少模板引擎,感觉可以总结一下了. 一.首先按照我的熟悉程度列一下:pyTenjin:我在开发 Doodle 和 91 外教时使用.Tornado.template:我在开发知乎日报时使用.PyJade:我在开发知乎日报时接触过.Mako:我只在一个早期就夭折了的小项目里用过.Jinja2:我只拿它做过一些 demo. 其他就不提了,例如 Django 的模板,据说又慢又难用,我根本就没接触过. 二.再说性能 很多测试就是

  • Python爬虫运用正则表达式的方法和优缺点

    前言 我看到最近几部电影很火,查了一下猫眼电影上的数据,发现还有个榜单,里面有各种经典和热映电影的排行榜,然后我觉得电影封面图还挺好看的,想着一张一张下载真是费时费力,于是突发奇想,好像可以用一下最近学的东西实现我的需求,学习了正则表达式之后,想着要感受一下它在爬虫里面的效果和优缺点. 目标:爬取Top100榜单上电影的封面图 Top100榜单规则:将猫眼电影库中的经典影片,按照评分和评分人数从高到低综合排序取前100名,每天上午10点更新.相关数据来源于"猫眼电影库". 下面是我做的

  • 全面分析Python的优点和缺点

    Python的优点和缺点 本节内容如下: Python的优点 Python的缺点 使用Python的知名网站 Python的优点 1. 简单 Python的语法非常优雅,甚至没有像其他语言的大括号,分号等特殊符号,代表了一种极简主义的设计思想.阅读Python程序像是在读英语. 2. 易学 Python入手非常快,学习曲线非常低,可以直接通过命令行交互环境来学习Python编程. 3. 免费/开源 Python的所有内容都是免费开源的,这意味着你不需要花一分钱就可以免费使用Python,并且你可

  • Python的缺点和劣势分析

    Python的短板 虽然Python拥有很多优点,但没有哪种编程语言能够胜任所有工 作,因此Python并不能完美地满足一切需求.如果要确定Python是否适 用于当前场景,还需要了解Python不擅长的领域. Python不是速度最快的语言 Python的执行速度可能算得上是一个缺点.Python不是一个完全编 译的语言,而是先编译为内部字节码形式,然后交由Python解释器来执 行.Python为某些操作给出了高效的实现,例如,用正则表达式解析字 符串,可以做到与自己编写的任何C语言代码一样

  • Python数据可视化正态分布简单分析及实现代码

    Python说来简单也简单,但是也不简单,尤其是再跟高数结合起来的时候... 正态分布(Normaldistribution),也称"常态分布",又名高斯分布(Gaussiandistribution),最早由A.棣莫弗在求二项分布的渐近公式中得到.C.F.高斯在研究测量误差时从另一个角度导出了它.P.S.拉普拉斯和高斯研究了它的性质.是一个在数学.物理及工程等领域都非常重要的概率分布,在统计学的许多方面有着重大的影响力. 正态曲线呈钟型,两头低,中间高,左右对称因其曲线呈钟形,因此人

  • Python构建网页爬虫原理分析

    既然本篇文章说到的是Python构建网页爬虫原理分析,那么小编先给大家看一下Python中关于爬虫的精选文章: python实现简单爬虫功能的示例 python爬虫实战之最简单的网页爬虫教程 网络爬虫是当今最常用的系统之一.最流行的例子是 Google 使用爬虫从所有网站收集信息.除了搜索引擎之外,新闻网站还需要爬虫来聚合数据源.看来,只要你想聚合大量的信息,你可以考虑使用爬虫. 建立一个网络爬虫有很多因素,特别是当你想扩展系统时.这就是为什么这已经成为最流行的系统设计面试问题之一.在这篇文章中

  • Python iter()函数用法实例分析

    本文实例讲述了Python iter()函数用法.分享给大家供大家参考,具体如下: python中的迭代器用起来非常灵巧,不仅可以迭代序列,也可以迭代表现出序列行为的对象,例如字典的键.一个文件的行,等等. 迭代器就是有一个next()方法的对象,而不是通过索引来计数.当使用一个循环机制需要下一个项时,调用迭代器的next()方法,迭代完后引发一个StopIteration异常. 但是迭代器只能向后移动.不能回到开始.再次迭代只能创建另一个新的迭代对象. 反序迭代工具:reversed()将返回

  • Python callable()函数用法实例分析

    本文实例讲述了Python callable()函数用法.分享给大家供大家参考,具体如下: python中的内建函数callable( ) ,可以检查一个对象是否是可调用的 . 对于函数, 方法, lambda 函数式, 类, 以及实现了 _ _call_ _ 方法的类实例, 它都返回 True. >>> help(callable) Help on built-in function callable in module __builtin__: callable(...) calla

  • Python应用领域和就业形势分析总结

    简单的说,Python是一个"优雅"."明确"."简单"的编程语言. 学习曲线低,非专业人士也能上手 开源系统,拥有强大的生态圈 解释型语言,完美的平台可移植性 支持面向对象和函数式编程 能够通过调用C/C++代码扩展功能 代码规范程度高,可读性强 目前几个比较流行的领域,Python都有用武之地. 云基础设施 - Python / Java / Go DevOps - Python / Shell / Ruby / Go 网络爬虫 - Pyth

  • 基于python历史天气采集的分析

    分析历史天气的趋势. 先采集 代码: #-*- coding:utf-8 -*- import requests import random import MySQLdb import xlwt from bs4 import BeautifulSoup user_agent=['Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.87 Safari/537.36'

  • python Tensor和Array对比分析

    如下所示: 区别 Array Tensor 类型 uint8,float32系列 {} 各类型相互转换 uint8转float64:image = image * (2. / 255.) - 1 float64转uint8:image.astype(np.uint8) {} 扩充维度 image[np.newaxis, :] tf.expand_dims(image,axis=0) 数组拼接 np.concatenate([image, image], axis=0) tf.concat([fr

  • python使用Word2Vec进行情感分析解析

    python实现情感分析(Word2Vec) ** 前几天跟着老师做了几个项目,老师写的时候劈里啪啦一顿敲,写了个啥咱也布吉岛,线下自己就瞎琢磨,终于实现了一个最简单的项目.输入文本,然后分析情感,判断出是好感还是反感.看最终结果:↓↓↓↓↓↓ 1 2 大概就是这样,接下来实现一下. 实现步骤 加载数据,预处理 数据就是正反两类,保存在neg.xls和pos.xls文件中, 数据内容类似购物网站的评论,分别有一万多个好评和一万多个差评,通过对它们的处理,变成我们用来训练模型的特征和标记. 首先导

  • 用 python 进行微信好友信息分析

    1. 使用到的库 ① wxpy:初始化微信机器人 ② openpyxl:保存微信好友数据为Excel表格 ③ pyecharts:生成可视化的地图 ④ wordcloud.matplotlib.jieba:生成词云图 [特别提醒]:pyecharts 库用的是0.5.x版本,而在 pip 中安装的为1.x.x版本,因此需要自行到[官网]中下载. 2. 基本功能 ① 分析微信好友数据 ② 生成词云图 ③ 生成地图展示 3. 代码实现 此处使用类来实现 (1) 导入模块 # 导入模块 from wx

随机推荐