Python 太糟糕了?开发者总结了 8 大原因
有开拓者发文表达了他认为 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 【编辑保举】
点赞 0 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |