首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Python 之父谈放弃 Python:我对核心成员们失望至极!

    来源:马哥教育链接:https://mp.weixin.qq.com/s/L7xC2INCJUqAoQSN1ZyHdgPython 之父讲述退位原因,以及 Python 的未来将何去何从。在 Python 社区,Python 的发明者 Guido Van Rossum 被称为 “仁慈的终生独裁者”(BDFL,Benevolent Dictator for Life)。今年 7 月 12 日的时候他突然宣布退位了。消息一出,一时间震惊了整个 Python 世界。当时他以 PEP 572 改进提案的争吵事件为例,表明其退出缘由。Guido van Rossum 于 1990 年发明 Python,他相信 Python 这门语言即使少了他的领导也依然能持续发光发热。现年 62 岁的 van Rossum 是一名 Dropbox 的首席工程师,近日他接受了外媒 InfoWorld 的采访。你为什么辞去 BDFL 职务?van Rossum:所谓的终生和独裁都仅仅是玩笑。实际上,最近十年,退休的念头都在我脑海里徘徊。我年龄已经不小了,身体也有一些问题。作为 Python 社区的主要负责人,我需要一遍又一遍地去教社区的其他成员如何开展工作,同时需要一遍又一遍地向 Python 新人解释 Python 的语言哲学,这样超负荷的工作让我的健康状况更为恶化。事情的引爆点在于一个颇具争议的 Python 改进提案(PEP 572),当我接受这个提案之后,Twitter 等社交媒体上出现了一些中伤我的评论。而更为心寒的是,这些评论居然大多来自 Python 的核心成员,我对他们失望至极!你能谈谈 PEP 572 提案的好处以及它为什么如此充满争议吗?van Rossum:该提案提出了一种新的语法,它允许表达式内赋值。总得来说,这是对 Python 语言的一个小补充。开发人员如果需要的话,可以在表达式中进行赋值。很多编程语言都有这个小功能,比如我熟悉的 C 和 C++。据我所知,Java 和 JavaScript 也支持。它是一种相当小的语法,但在某些情况下,它可以让代码编写变得更容易,并且通过删除冗余能够提升代码的可读性。很多人觉得自己熟知 Python 的设计理念,他们认为该提案没有遵循 Python 的设计原则。该提案引发争议的另一个原因在于其作者自己的失误,之前几个版本就存在一些严重的问题,因此这一次,即使之前认同其基本理念的人也投了反对票。但这只是一个轻微的句法变化,并不激进。该特性将包含在哪个版本的 Python 中?van Rossum:它将出现在 Python 3.8 中。Python 3.8 将于一年半后发布。此前我们曾发文探讨过为何 Python 的速度如此之慢,在这一更新版本中,Python 3 启动慢的问题将会是 CPython 核心团队主要解决的问题之一。会有一个新的 BDFL 吗? Python 后续将如何管理?van Rossum:很抱歉,目前确实无可奉告。实际上,我给核心开发团体(拥有提交权限的 100 多人)指定了一项任务,让他们思考今后的管理模式并选出新的负责人。他们在解决 Python 问题的同时,需要认真完成该任务。这可能需要长期讨论,短期内很难达成共识。令我高兴的是他们欣然接受了这个任务,并制定了任务进度表。他们会在 2018 年 10 月 1 日前完成提案的收集。然后,在 2018 年 11 月 1 日前,他们会从众多提案中选出最终的管理方案。然后到 2019 年 1 月 1 日,他们会整理好管理方案的相关文件,并选举或者任命新的负责人。如果有提案指出需要 BDFL,则该提案必须对其详细说明,比如如何选举 BDFL,BDFL 任职时长,以及 BDFL 的弹劾机制。我想最快 10 月 1 日,最晚明年 1 月 1 日,将会产生一名新的 BDFL。Python 的核心成员都有谁?van Rossum:Python 的核心成员有很多。比如 Brett Cannon,他是一位真正的大神。又如 Tim Peters,作为我的良师益友,他提出了“Python 之禅”,生动地诠释了 Python 的编程哲学。另外,Barry Warsaw 也是核心开发人员之一。未来你将在 Python 项目中担任怎样的角色?van Rossum:我将成为一名普通的贡献者或者核心开发者。偶尔会编写或者审查代码。此外,我将尝试专注于核心开发人员的指导工作上,尤其是新的核心开发人员、女性或者少数民族人士。因为我个人很推崇核心开发人员的多样性。作为曾经的 BDFL,你觉得自己的离开会不会吓跑一些 Python 爱好者?van Rossum:我认为不至于。Python 社区非常健康,Python 核心团队非常强大且充满活力。我相信他们能够克服这点小困难,并在未来几十年里继续推动 Python 前进,如果连这点自信都没有,我也不会辞职。尽管

    01

    对python3编码那些事的小小总结

    一、 了解一下编码的发展。 1、 计算机只能处理数字,如果需要处理文本,需要先将文本转换为数字。因为计算机是美国梆子发明的,所以他们发明了最早的编码--ASCII编码,也就是将他们的大小写字符数字和一些符号编码得到计算机中。比如A的编码是65。 2、 随着计算机在中国发展起来,拿ASCII去处理中文,显然是不够的,因为英文需要一个字节处理,而中文是需要两个字节。为了满足需求我们中国发明了自己的编码GB2312。将中文编进去。 3、 我们中国如此,世界上那么多语言岂不是每种语言都需要一种编码标准,如果一个文本中有多种语言,到时候产生的结果就是出现乱码。 4、 为顺应发展,比较叼的Unicode编码出生了,这个东西将所有的语言都统一到一套编码中。这样就不会再出现乱码的问题。虽然这个东西够强大,但是却有一个不能小觑的缺点。相比于ASCII编码要多出一倍的储存空间。例如:A ascii:65 二进制:01000001 unicode:00000000 01000001 5、 所以秉承着节约的原则,UTF-8应运而生,好处编码可变长。例如A的UTF-8:01000001,可以将unicode编码中的前面的零节约掉。 二、 在计算机 系统中通用编码的工作方式 1、 当我们编辑文档的时候,读取文档内容将UTF-8字符转换为unicode字符到内存中。因为这里需要显示,为了避免乱码,使用通用的Unicode编码。 2、 当编码编辑完成后,再将Unicode的编码转换为UTF-8保存到文件中。因为这里是需要存入磁盘中的,为节约储存空间,使用可变编码长度的UTF-8编码。 三、 python3字符编码 python的字符串类型是str,在内存中以Unicode表示。 1、 如果需要在网络上传输,或者保存到存储设备上,就需要将str变成以字节为单位的bytes。可以使用encode()方法。通过第一大点的了解,我们知道Unicode表示的str可以通过ASCII和utf-8编码转换。但是转换中文的时候,一定使用utf-8,因为含有中文的str无法用ASCII编码,超出了ASCII编码的范围。例如:

    02
    领券