为什么Python2和Python3造就了社区分裂

主要问题还是因为 Python 的动态性。因为python2有太多的设计缺陷,以至于python3如果要兼容Python2将会是一个几乎难以完成的任务,所以,guido放弃了对python2的兼容。同时,内置字符串从二进制存储改为 unicode 存储的步子太大了,导致这不只是语法方面的变化,而是整个运行时都变了。

python2有太多的设计缺陷,以至于python3如果要兼容Python2将会是一个几乎难以完成的任务,所以,guido放弃了对python2的兼容。

就拿字符来说,这是一个难以兼容的技术点,python诞生的年代比unicode还早,以至于使用asccii作为默认编码,字符串和字节没有严格界限,后来由因为需要支持unicode,所以直接引入了unicode类型,以至于经常遇到编码问题。

如果在设计python2的时候积极放弃对python1的支持,今天就没有分裂这回事了,所以根据墨菲定律,该发生的时候一定会发生,如果能及早的防范,受到的影响也会更小

主要问题还是因为 Python 的动态性,2to3 不是完全可靠的,改完还需要人工来改。不过更加痛苦的是,2to3 改出来的代码,只能在 Python3 下跑,造成了如果你想要提供一个库,并且 Python2 和 Python3 都有,你就不能使用这个工具来转换。

还是因为内置字符串从二进制存储改为 unicode 存储的步子太大了,导致这不只是语法方面的变化,而是整个运行时都变了。按你说的用标记的方式,来标记一个文件为 Python3 模式,语法解析不会遇到问题,但是这时候引用一个标准库的函数,Python2 中这个函数只接受二进制风格的字符串,Python3 里只接受 unicode 的字符串,那要怎么处理?

延伸阅读:

什么是Python?

Python由荷兰数学和计算机科学研究学会的吉多·范罗苏姆于1990年代初设计,作为一门叫做ABC语言的替代品。Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言,随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。

Python解释器易于扩展,可以使用C语言或C++(或者其他可以通过C调用的语言)扩展新的功能和数据类型。Python也可用于可定制化软件中的扩展程序语言。Python丰富的标准库,提供了适用于各个主要系统平台的源码或机器码。

文章标题:为什么Python2和Python3造就了社区分裂,发布者:小编,转载请注明出处:https://worktile.com/kb/p/39048

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小编小编站长
上一篇 2023年2月21日 上午2:22
下一篇 2023年2月21日 上午2:24

相关推荐

  • 呆神王英键:信息安全行业低调大佬的一次脱轨式创业

    文| babayage 编辑 |馨 月 “呆神”王英键,跟呆字不沾半点关系,言谈举止中尽是通透融润的人生智慧。身为信息安全行业的低调大佬,入行早、辈分高、成就大,在三年一小变、五年一大变的信息产业中屹立18年不倒,帮衬的袍泽、带出的徒弟遍布信安领域。可就是这么一位阅尽春秋的高人,却也做出过让自己猛拍…

    2022年3月20日
    29200
  • Qt有几种开发方式

    Qt支持多种开发方式,主要包括:1、C++方式;2、QML/JavaScript方式;3、Python方式。Qt库本身是用C++编写的,因此C++是Qt的主要开发语言。通过使用Qt的C++库,开发者可以创建具有丰富用户界面的应用程序,同时也可以访问网络、数据库和其他资源。 一、C++方式 Qt库本身…

    2023年7月28日
    29500
  • 如何实现知识库的权限管理和访问控制

    实现知识库的权限管理和访问控制的步骤:1、明确权限管理的目标;2、分析用户角色和职责;3、制定基于角色的权限策略;4、权限继承和覆盖;5、细粒度的权限控制;6、动态权限调整;7、强化身份验证机制;8、数据加密和传输安全;9、实施审计和监控机制;10、定期安全审查;11、应对组织变化的策略;12、用户自助权限管理;13、了解法规和合规性要求;14、定期更新合规性措施。

    2023年11月16日
    2100
  • 写文件用什么软件

    写文件用以下软件:一、Microsoft Office Word;二、TXT;三、写字板;四、WPS。Word给用户提供了用于创建专业而优雅的文档工具,帮助用户节省时间,并得到优雅美观的结果。一直以来,Microsoft Office Word 都是最流行的文字处理程序。 一、Microsoft O…

    2023年3月31日
    24400
  • 网页打开很慢怎么回事啊

    本文将帮助你理解和解决网页打开缓慢的问题。我们将分析此问题的五个可能原因:1、网络问题;2、浏览器问题;3、计算机性能问题;4、网站服务器问题;5、DNS问题,并提供相应的解决方案。最后,我们将给出提高网页打开速度的一些小建议。 1、网络问题 网络问题是导致网页打开缓慢的常见原因。如果你的网络连接速…

    2023年8月4日
    11900
  • 社交型知识库有哪些平台

    社交型知识库是结合社交网络和知识管理功能的在线平台,它们有效促成了信息的共享与个人间互动。目前,1、Quora、2、Stack Exchange、3、Reddit、4、Zhihu以及5、LinkedIn Learning是该领域的一些主要平台。这些平台促进了专业知识的交流,支持用户通过提问、回答、讨…

    2023年11月15日
    2700
  • 需求评审和设计评审有什么不同

    需求评审和设计评审的区别:1、适用范围不同;2、评审重点不同;3、评审流程不同。需求评审是从用户的角度出发,一切围绕用户进行评审。理解了软件产品的业务需求和用户需求后,才能进一步进行设计,从而对软件实现的功能进行设计评审,需求评审在前,设计评审在后。

    2022年11月16日
    80100
  • 线上的数据库发现索引不合理怎么处理

    线上的数据库发现索引不合理的处理步骤是:一、识别问题;二、处理问题;三、测试。在处理索引问题之前,需要先识别问题。在识别问题时,可以通过使用sql语句检查和使用工具检查。还可以使用一些工具来检查不合理的索引,比如 Percona Toolkit 或 MySQLTuner 等。 一、识别问题 在处理索…

    2023年5月29日
    4800
  • 产品管理的核心及作用分别是什么

    产品管理的核心主要包含七大模块:1.产品战略管理;2.产品需求管理;3.产品研发管理;4.产品规划管理;5.产品市场管理;6.产品上市管理;7.产品生命周期管理。产品管理的作用是使企业研发生产出符合用户需求的产品,提升竞争力,获得最大限度的利润。

    2022年11月12日
    58900
  • 如何将OKR与企业战略规划相结合

    结合OKR(Objectives and Key Results,目标与关键成果)与企业战略规划,需要确立明确的企业愿景和目标,并将这些转化为实际的、可执行的关键成果。1、理解OKR和战略规划的基本原则;2、确立企业愿景与战略目标;3、转化为可度量的关键成果;4、加强沟通与团队参与;5、定期检视与调…

    2023年12月8日
    700

发表回复

登录后才能评论
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部