有开辟者发文表达了他感到 Python 不可的 8 大缘由。
作者对每项“缺陷”都实行了剖析,全文洋洋洒洒,归纳综合起来 8 个缘由辨别是:
1、版本不兼容
Python 3 与 Python 2 不完整兼容。作者以 Perl 言语和发明了天下上早期个人电脑的 Commodore 为例,剖析了缺少向后兼容性和别离版本是怎么招致失败的。
2、装置问题
运转 apt、yum 与 rpm 等Tools可以获得并装置大大多数软件包的最新代码,可是在运用 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
2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务