扫描二维码,下载手机APP
下载安卓APP箭头
您当前所在的地位: 彩559>消息资讯>IT业界>如果开发Python 太糟糕了?开发者总结了 8 大原因是什么

如果开发Python 太糟糕了?开发者总结了 8 大原因是什么

作者:课课家教导 http://jscebj.com点击数:1554发布时间:2018-12-21 21:45:32
软考,您想通过吗?一次通过才是硬道理

  摘要:彩559Python 3 与 Python 2 不完整兼容••。作者以 perl 语言和创造了世界上早期个人电脑的 Commodore 为例,分析了缺乏向后兼容性和分别版本是如何导致失败的••。

  1¶••⊿版本不兼容

  Python 3 与 Python 2 不完整兼容••。作者以 perl 语言和创造了世界上早期个人电脑的 Commodore 为例,分析了缺乏向后兼容性和分别版本是如何导致失败的••。

  2¶••⊿安装问题

  运行 apt¶••⊿yum 与 rpm 等工具可以获取并安装大多数软件包的最新代码,但是在应用 apt-get install python 或者 pip install python 安装 Python 的时候你不知道实际被安装的是哪个版本,而这可能与你所需要的代码不兼容••。安装时需要指定 Python 版本••。

  3¶••⊿缩进规矩

  乍一看,Python 代码似乎非常易读,但是在大型代码库中并不是这样••。 python的四格缩进容许深度嵌套,但是嵌套太多层的话会导致代码在文本编辑器中换行,变得混乱••。而长函数和长条件操作可能使得难以匹配语法的开端与结束••。给调试带来了很大的艰苦••。

  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

  假如在应用软件主动化测试彩559 ,名为“libscreencapture.so”的 C 库测试截屏程序,可以调用自己的程序“screencapture.c”并编译成“screencapture.exe”••。

  但是在 Python 中这么做是不行的••。Python 假定你首先要导入的是本地代码,那么如果你有一个名为“screencapture.py”的程序应用“import screencapture”,它将导入自己而不是系统库••。

  作者最后还表现,通常他会辩证地去评论一个东西,他感到 Python 确实有一些不错的库,比如 BeautifulSoup¶••⊿NumPy 和 TensorFlow,但是他真的没法列出关于 Python 其它好的方面,因为他真的认为 Python 很糟糕••。

赞(29)
踩(0)
评论(0
最新评论

暂无评论~

热门文库

热门图书

论坛热帖

幸运飞艇投注网 辽宁福彩网网 极速赛车投注 澳洲快乐十分怎么买 qq分分彩开户网 75秒赛车走势图 加拿大28网上购买 香港跑马走势图 澳洲快乐十分登入平台 飞速赛车官方网站