0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

开发者发文表达了他觉得 Python不行的8大原因

电子工程师 来源:lq 2018-12-25 11:36 次阅读

开发者发文表达了他觉得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-oscreencapture.exescreencapture.c-lscreencapture

假如在使用名为“libscreencapture.so”的 C 库测试截屏程序,可以调用自己的程序“screencapture.c”并编译成“screencapture.exe”。

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

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传递函数
    +关注

    关注

    0

    文章

    96

    浏览量

    13792
  • python
    +关注

    关注

    51

    文章

    4669

    浏览量

    83456

原文标题:Python 太糟糕了?有个开发者总结了 8 个理由

文章出处:【微信号:DBDevs,微信公众号:数据分析与开发】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    成功的软件开发者需要掌握人际技能的3个原因

    的沟通交流造成影响。软件开发者并不一定能够理解这一点。相反,他们会抱怨客户,觉得:我们的客户一直在抱怨进度慢。根本就不知道我们其实已经非常努力,做什么事情都需要时间啊。当然
    发表于 12-12 14:39

    如何正确的使用开发者中心?开发者绝对不想错过的干货

    不可错过的史上最全干货,喜大普奔,开发者们纷纷奔走相告,你还不来看看吗?开发快官网的开发者中心是为用户提供资料和服务的平台,全面了解文档架构可以帮助开发者快速找到自己需要的资料。在使用
    发表于 03-16 09:03

    Python 之父 退出Python 核心决策层,而转居幕后

    开发者致谢的。但是 Python 的未来从此将何去何从?Guido van Rossum 在邮件中提醒开发者,CoC(Python 社区行为准则)仍然存在,后续的决策将由
    发表于 07-14 17:45

    开发者福音!谷歌云APP引擎开始支持Python 3.7

    `Python表示很开心!谷歌云推出了第二代App Engine引擎标准runtime,这是对平台的重大升级,允许开发者使用最新版本流行语言、框架和库轻松运行web应用程序。想要尝鲜的小伙伴们,猛戳
    发表于 08-14 10:12

    OpenHarmony开发者文档

    此工程存放OpenHarmony提供的快速入门、开发指南、API参考等开发者文档,欢迎参与OpenHarmony开发者文档开源项目,与我们一起完善开发者文档。View English文
    发表于 04-23 18:08

    看了9岁鸿蒙开发者的视频,你有何感想?发布感想,50%概率中奖!

    `【有奖留言活动】最近鸿蒙社区传播很广的九岁鸿蒙开发者戈帅的鸿蒙开发直播引起了大家的关注,听着那稚嫩的童音,在讲解鸿蒙的操作,不禁让人赞叹不已,不少人表示英雄出少年长江后浪推前浪再不努力,饭碗就要
    发表于 05-10 10:32

    【0510活动】9岁的“开发者”?

    ,时代在进步。但是毕竟才九岁,文化基础不足,有这个兴趣固然是好的,慢慢培养日后必成大器,成为真正的开发者
    发表于 05-14 17:32

    HarmonyOS开发者

    HarmonyOS开发者,HarmonyOS设备开发学习路线HarmonyOS 2.0如约而至,内存在128KB~128MB的终端设备厂商有福,准备跃跃欲试,小编特意整理了HarmonyOS设备
    发表于 07-22 09:53

    @开发者,你有一次向华为消费业务举办的开发者大会吐露心声的机会~

    大会内容关注点、体验形式以及配套服务等方面的信息。【请注意】本次调研将于2021年8月4日24:00截止感谢您一直以来对华为消费业务举办的开发者大会的关注与支持。我们也希望您可以帮我们分享本次调研
    发表于 08-03 14:53

    绝对干货!HarmonyOS开发者日资料全公开,鸿蒙开发者都在看

    731HarmonyOS开发者日大会PPT资料全在这,想要了解的小伙伴可以自行下载啦~下载资料的小伙伴还可以在评论区回复领取5个积分哦1、HarmonyOS 职业认证解读:该主题是开发者非常关注
    发表于 08-04 14:36

    OpenHarmony开源开发者成长计划-职业开发者挑战赛 开发资料汇总

    OpenHarmony开源开发者成长计划-职业开发者挑战赛 开发资料汇总OpenHarmony开发者文档设备开发文档应用
    发表于 04-24 13:44

    喜报|HarmonyOS开发者社区连获业内奖项,持续深耕开发者生态

    临近年末,各大平台陆续揭晓年度榜单,表彰具备强大影响力与做出突出贡献的优秀项目与团队,而HarmonyOS开发者社区作为技术分享,学习和展示的平台,输出高质量技术文章百余篇,连续获得业内各大
    发表于 01-19 14:32

    欢迎加入飞腾派开发者社区,感谢每一位开发者

    发烧友论坛一起策划了飞腾派开发板测评活动,受到了广大开发者的喜爱。 通过这次活动,飞腾派成功地吸引众多高质量开发者的关注和参与,进一步扩大
    发表于 12-11 16:11

    Python 转向 Go语言的9大原因和3大缺点

    转用一门新语言通常是一项大决策,尤其是当你的团队成员中只有一个使用过它时。今年 Stream 团队的主要编程语言从 Python 转向了 Go。本文解释了其背后的九大原因以及如何做好这一转换。
    发表于 06-17 07:40 6698次阅读

    Python开发者最容易忽略的10个要点

    小错误,这些错误都很容易避免,本文总结了Python开发者最容易犯的10个错误,一起来看下,不知你中枪了没有。 1.滥用表达式作为函数参数默认值 Python允许
    的头像 发表于 01-02 10:13 856次阅读