为什么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

相关推荐

  • 版本管理工具有哪些

    版本管理工具有:1、VSS;2、CVS;3、SVN;4、GIT;5、HG。其中,VSS是指,VSS 的全称为 Visual Source Safe 。作为 Microsoft Visual Studio 的一名成员,它主要任务就是负责项目文件的管理,几乎可以适用任何软件项目。 一、VSS VSS 的…

    2023年4月19日
    1.1K00
  • 为什么vscode运行不出网页

    VSCode运行不出网页可能的原因包括:插件缺失、配置错误、代码问题、路径问题、缺少必要的文件、浏览器兼容性问题、防火墙或网络设置等。其中,插件缺失是最常见的原因,Visual Studio Code (VSCode) 本身是一个强大的代码编辑器,但并不自带网页运行环境,因此需要安装如Live Se…

    2024年4月3日
    20300
  • 常见的软件风险有哪些

    常见的软件风险有:1、技术风险;2、管理风险;3、过程风险;4、人员风险。其中,技术风险主要体现在影响软件生产率的各种要素上,需求识别不完备;客户对需求缺乏认同;客户不断变化的需求等。 一、技术风险 技术风险主要体现在影响软件生产率的各种要素上。 二、管理风险 三、过程风险 四、人员风险 延伸阅读 …

    2023年5月5日
    1.7K00
  • GPU服务器是干什么用的

    GPU服务器的用途主要有:1、深度学习;2、科学计算;3、图像处理;4、游戏渲染;5、虚拟化技术;6、区块链计算。其中,深度学习指的是利用GPU强大的并行计算能力进行神经网络训练和预测。使用GPU服务器进行深度学习可以大大缩短模型训练的时间,提高研发效率。 1、深度学习 GPU服务器:深度学习需要大…

    2023年7月18日
    68800
  • 项目epc管理合同如何签

    项目EPC管理合同的签署是确保项目按预定成本、时间和质量标准完成的关键环节。EPC合同通常涉及工程设计(Engineering)、采购(Procurement)和建造(Construction)三个主要方面,确保整个项目的顺利实施。在EPC项目管理合同中,最为核心的部分便是确立一套明确、合理的合同结…

    2024年4月10日
    6500
  • pix4d,altizure,smart3d区别

    pix4d、altizure和smart3d均为航拍数据处理软件,但三者间存在显著差异:1.用户界面与操作性不同;2.数据处理能力不同;3.输出格式与质量不同;4.云服务与本地处理不同;5.定价模式与授权策略不同;6.集成与兼容性不同;7.支持与培训服务不同。pix4d提供详细的在线教程和用户社区支…

    2023年2月15日
    80400
  • 常用的plc编程语言有哪些

    常用的plc编程语言有:1、梯形图语言;2、指令表语言;3、功能模块图语言。梯形图语言是PLC程序设计中最常用的编程语言,被称为PLC的名列前茅编程语言。CPU将物理输入读入内存表,通常称为“输入表”。 1、梯形图语言 梯形图语言是PLC程序设计中最常用的编程语言。CPU将物理输入读入内存表,通常称…

    2023年1月9日
    2.2K00
  • oa架构

    标题:OA架构深度解析 OA架构即办公自动化架构,关键在于提升工作效率、促进信息流转、保障数据安全性。OA系统多采用分层架构、模块化设计、集成化平台构建, 其中分布式计算、1、服务化组件、2、数据安全性、3、用户交互体验等为系统核心。特别是数据安全性,通常通过加密算法、访问控制和备份机制来实现,确保…

    2024年1月11日
    41700
  • eplan无法找到部件数据库怎么解决

    解决方法是:一、手动添加部件数据库;二、修改部件数据库路径;三、修复或重新安装部件数据库文件。如果部件数据库文件被删除或移动了位置,可以通过手动添加部件数据库来解决问题。 一、手动添加部件数据库 如果部件数据库文件被删除或移动了位置,可以通过手动添加部件数据库来解决问题。具体步骤如下:打开EPLAN…

    2023年5月30日
    6.6K00
  • 如何做好一个项目展览管理

    项目展览管理的关键在于精细的策划、周密的组织和高效的执行。策划工作包括目标设定、目标受众分析、主题确定、以及内容规划。在周密的组织中,资源调配、团队协作和时间管理是核心要素。高效的执行则要求流程控制、问题应对能力强、现场管理严格。在策划阶段,确定项目展览的目标尤为重要。这应基于深入分析目标受众,包括…

    2024年4月11日
    5200

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

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

分享本页
返回顶部