有开发者发文表达了他以为Python 不可的 8 大缘故。

作者对每一项“弱点”都举行了阐明,全文洋洋洒洒,归纳起来 8 个缘故离别是:

1、版本不兼容

Python 3 与 Python 2不彻底兼容。作者以 Perl 言语和发明了天下上初期个人电脑的 Commodore 为例,阐明了不足向后兼容性和离散版本是怎样招致失利的。

2、装置题目

运转 apt、yum 与 rpm 等工具能够获得并装置大多数软件包的***代码,可是在运用 apt-get install python 大概 pip install python 装置 Python 的时间你不晓得现实被装置的是谁人版本,而这能够与你所需求的代码不兼容。装置时必要指定 Python 版本。

3、缩进规矩

乍一看,Python 代码仿佛十分易读,可是在大型代码库中并不是如许。Pyhon 的四格缩进容许深度嵌套,可是嵌套太多层的话会致使代码在文本编辑器中换行,变得紊乱。而长函数和长前提操纵能够使得难以立室语法的开端与收场。给调试带来了很大的艰难。

4、代码导入体例

Python 的导入方法import 许可引入全部模块、模块的一部分或模块中的特定函数。作者以为 Python 这类导入法则使得查找可导入的列表并不直观。C 中能够直接检察 .h 头文件,可是 Python 必要运用 python -v 列出援用所在位置,以后搜刮该列表中每一个目次和子目录中的每一个文件。

别的,Python 的导入机制还许可用户重命名导入的代码,作者以为重命名模块非常适合小剧本,然则关于长法式来讲真的很蹩脚,由于它会影响代码的可读性和持久撑持。

而更蹩脚的处所在于,对付大多数说话来讲,导入代码就只是导入代码,要是存在带有构造函数的全局工具,那末一些说话会实行代码,但这平常被以为是一种不好的做法。而很多 Python 模块在导入时代就运转初始化函数,这招致你不清晰甚么正在运转,不晓得它在做甚么,需求花良多时候来追踪。

5、定名法

作者以为 Python 没有运用通用而且专业的术语描述语言自身。比方在别的一切说话中,数组都称为 arrays,然则在 Python 中,它被称为 lists;联系数组偶然称为 hash(Perl),但 Python 称之为 dictionary。代码库定名要领也是如许,像 PyPy、PyPi、NumPy、SciPy、SymPy、PyGtk、Pyglet 与 PyGame 这些库,它们称号中的“Py”偶然放在开首,偶然又放在后边,没有同一。而近似 matplotlib、nose、Pillow 和 SQLAlchemy 的一些常见库以至直接抛却了“Py”这类定名商定。

作者将 Python 描写为“具备恐怖且不同等的定名商定的库的鸠合”。

6、怪癖

每种言语或多或少都有本身的怪癖,然而 Python 比别的说话都多。以字符串的操纵为例,在 Python 中,单引号和双引号之间没有区分。然而,若是想要字符串跨行,则需求应用三引号 """string"""或 ```string```;若是想应用二进制文件,那末必要运用b'binary' 或 r'raw';偶然必要运用 str(string) 将字符串转换为字符串,或运用 string.encode('utf-8') 将其转换为 utf8。

7、按工具援用传送变量

大多数编程语言都按值传递函数参数,然则 Python 默许利用 pass-by-object-reference 参数履行函数,这意味着变动源变量大概会使援用值扭转。这是步伐、函数和和面向对象编程说话之间的严重悬殊之一,要是每一个变量都是经过工具援用传送的,而且对变量的任何变动都会在任何处所变动援用,那末能够直接应用全局变量来解决一切变量。可是全局变量的弊病是有目共睹的。

8、本地称号

gcc -o screencapture.exe screencapture.c -lscreencapture

倘使在应用名为“libscreencapture.so”的 C 库测试截屏顺序,能够挪用本身的法式“screencapture.c”并编译成“screencapture.exe”。

然而在 Python 中这么做是不可的。Python 假设你起首要导入的是本地代码,那末若是你有一个名为“screencapture.py”的步伐应用“import screencapture”,它将导入本身而不是体系库。

作者***还表现,每每他会辩证地去谈论一个器材,他感觉 Python 的确有一些不错的库,好比 BeautifulSoup、NumPy 和 TensorFlow,可是他真的无法列出对于 Python 别的好的方面,由于他真的以为 Python 很蹩脚。

详情检察原文:https://www.hackerfactor.com/blog/index.php?/archives/825-8-Reasons-Python-Sucks.html

【编辑举荐】

python开发者是谁_Python 太蹩脚了?开发者总结了 8 大缘故相关推荐

  1. python好难找工作_Python 太难找工作了

    68 354 天前 @alw1329 ```python # 一个例子,实际数据比较长 # 比如这是我一个很长的需要的数据列表 # 里面缺失了一个 matchId event_data_list = ...

  2. python新年有趣代码_Python有趣时刻,这些代码让你大呼卧槽,怎么会这样

    分享一个实用问题,用python读取Excel并保存字典,如何做? 下面是该同学问题截图和代码 image 代码截图是下面这样的 image 不知道大家第一眼看了这个代码,什么感受?我第一眼的感受是密 ...

  3. python阶乘倒数和_python阶乘倒数求和!!! 求大神 c++程序 阶乘

    from __future__ import divisiondef FuncSum(n): s=1;f=1 for i in range(1,n+1): f*=i s+=1/f; return si ...

  4. python 的blaze库_Python 开发者 2017 应该关注的 7 个类库

    Python 开发者 2017 应该关注的 7 个类库 jango 依然是 Python 开发者值得信赖的库 .然而,在 2016 年几个还不太知名的库引起了 Python 开发者的关注.在这篇博文中 ...

  5. python如何搭建环境_Python基础环境如何搭建

    python基础环境搭建确实也是一大难题,就让扣丁为大家归纳总结重点知识,在大家的学习中,希望可以助大家一臂之力.其实Python的环境搭建说难也不难,说简单也不简单.主要有以上几点. 1.Pytho ...

  6. python如何定义类_Python class定义类,Python类的定义(入门必读)

    在面向对象的程序设计过程中有两个重要概念:类(class)和对象(object,也被称为实例,instance),其中类是某一批对象的抽象,可以把类理解成某种概念:对象才是一个具体存在的实体.从这个意 ...

  7. python转js解释器_python 代码转换 js

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 推荐使用腾讯云 api 配套的7种常见的编程语言 sdk,已经封装了签名和请求过 ...

  8. python基础知识测试题_Python中的单元测试—基础知识

    python基础知识测试题 Unit testing is the number one skill which separates people who just finished their de ...

  9. python函数画圆_python圆形_python圆形绘制_python圆形函数 - 云+社区 - 腾讯云

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 今天上课老师布置了一道pthon的课题,关键是和数学有关数学又是我的弱项头有点小 ...

  10. python数据模型的意义_Python 数据模型

    Guido 对语言设计美学的深入理解让人震惊.我认识不少很不错的编程语言设计者,他们设计出来的东西确实很精彩,但是从来都不会有用户.Guido 知道如何在理论上做出一定的妥协,设计出来的语言让使用者觉 ...

最新文章

  1. 在C++平台上部署PyTorch模型流程+踩坑实录
  2. .net项目文档生成工具使用
  3. 大专学完出来学计算机,浙江2021年计算机学校读出来是什么文凭
  4. 「面试题」介绍你做过最复杂的系统
  5. 《UML面向对象设计基础》—第1章1.5节消息
  6. 例题9-6 UVa11400 Lighting System Design(DP)
  7. js调用java_Js调用Java方法并互相传参的简单实例
  8. 有些人,理他就输了!
  9. python实现Dijkstra算法求解图中最短路径距离
  10. 计算机主机内部接口示意图,电脑主机后面六个孔图解 电脑的各个接口详解
  11. asp万年历简易版本
  12. java定义矩形的周长和面积_定义一个长方形类,定义 求周长和面积的方法实例
  13. 手机拍的照片计算机内存不足怎么办,手机内存不够用,照片应该怎么处理才能够少占用内存?...
  14. 拾色器 插件 Farbtastic
  15. 《大数据》笔记 Bonferroni correction
  16. mysql 一小时内数据
  17. HiC|高通量染色体构象捕获技术
  18. Uni-app使用原生aar本地包云打包报错
  19. 我思故我在--(一)
  20. 为什么Vue中的v-if 和v-for不建议一起用?

热门文章

  1. 智能快递柜的密码模块
  2. cm12 for 三星n7100编译
  3. 计算机系统集成工作总结,系统集成工作总结报告.docx
  4. yzy的欢乐膜你赛后,一份迟来的个人(蒟蒻)思路解析
  5. 文字跳跃率与图片跳跃率
  6. 卸载office提示无法打开修补程序包 修补程序包是否存在的解决方法.
  7. 这样设计积分兑换系统,让你的用户“活”起来
  8. java 获取ipv4的地址_java 获取ip地址和网络接口
  9. java麻将算法_Java实现的麻将胡牌算法
  10. 1357:车厢调度 (栈)