设为首页 加入收藏

TOP

Python 为什么如此设计?(二)
2023-07-25 21:28:31 】 浏览:73
Tags:Python
戏剧性
  • Python 的 lambda 只支持单行表达式,功能不完备。曾有人提议增强 lambda 语法,Python 之父认为那不是好的设计,因而否决了
  • Guido 提出要一次性移除 reduce()、map()、filter() 以及 lambda,但最后他妥协了
  • Python 为什么不支持 switch 语句?
    • 大多数语言都提供了 switch 语句或者极其相似的东西,但在 Python 之父的裁决下,Python 不提供 switch 语句
    • 文章介绍了试图引入 switch 语句的 PEP-275 与 PEP-3103,总结了这两个提案的要点以及被否决的原因
  • Python 疑难问题:[] 与 list() 哪个快?为什么快?快多少呢?
    • 两种创建列表的 [] 与 list() 写法,哪一个更快呢,为什么它会更快呢?
    • 文章通过字节码与执行过程的分析,解释了两者执行速度的差异
  • 为什么说 Python 内置函数并不是万能的?
    • 内置函数的名称并不是关键字,而内置作用域位于名称查找的最低优先级,因此在调用时,某些内置函数/类型的执行速度就明显慢于它们对应的字面量表示法
  • 为什么继承 Python 内置类型会出问题?!
    • 由《流畅的Python》中的例子,引出 Python 在内置类型子类化时不合常理的话题
    • 分析魔术方法的底层实现逻辑及调用关系,解释内置类型存在的问题
    • 介绍了内置类型子类化的最佳实践
  • 为什么 Python 的 f-string 可以拼接字符串与数字?
    • Python 是强类型语言,在不经过强制类型转换的情况下,字符串无法拼接数字
    • 介绍了 PEP-498 实现 f-string 的原理
  • Python 的切片为什么不会索引越界?
    • 切片是不少编程语言的特性,Python 的切片不仅功能完善,而且在使用上更为灵活
    • 索引越界是一个常见的问题,Python 切片使用了几条规则,屏蔽了可能导致出错的情况
    • 文章介绍了 Python 的解决方案,但是也留下了一个疑问:为什么 Python 的切片语法要允许索引超出边界呢,为什么不设计成抛出索引错误?
  • 为什么 range() 生成的不是迭代器?
    • 有很多内置方法可以生成迭代器,然而似乎只有 range() 生成的是可迭代对象,这个 range() 显得非常独特。文中给出了我对此的猜想
    • 我还注意到 range 是一种不可变序列,然而它跟字符串这种不可变序列相比,也有着独特的表现
  • Python 为什么要保留显式的 self ?
    • 这也是一个常见问题。这里给出了官方文档的解释,另外附了 Guido 的一篇博客全文
  • Python 为什么不设计 do-while 循环结构?
    • 在 C/C++、C#、PHP、Java、java script 等语言中,do-while 是一种基本结构。Python 为什么不沿袭它们的传统呢?有什么特殊的考虑?
    • 文章列举了其它语言中 do-while 语法的主要使用场景,解释了为什么 Python 可以不用这种结构
    • 介绍了 PEP-315 试图引入 do-while 结构的尝试,以及 Guido 的反对意见
  • 为什么 Python 3 把 print 改为函数?
    • Python3 与 Python2 最显眼的一个区别就是:print 语句变成了 print() 函数
    • PEP-3105 Make print a function 是对这个问题最好的回答
  • 为什么说 Python 最会变魔术的魔术方法是它?
    • __missing__() 是仅在内置类型的子类上才存在的魔术方法,似乎是唯一的特例
    • __missing__() 极为特殊,Python 解释器为它开了后门,实现了最为罕见的“魔术方法间调用”逻辑
  • Python 为什么用”elif“,而不是“else if”?
    • elif 写法相比于“else if”更为简洁,这种写法并非 Python 首创。Guido 发推特解释了这种写法的来源
  • 当在两年半前写下第一篇“Python为什么”系列的时候,我无法想象自己会在 2023 年到来之际写下这一篇宣告重新起航的小结,更无法想象是在下一个两年半,或者五年半或者更久,再次写下一篇新的总结。谁说得准呢!

    但是,不忘初心,珍惜当下的决心,树立砥砺前行的恒心,我可以的!

    最后,别急着划走啊,请一定记得点个关注、点个 star 哈,喵喵喵~~

    首页 上一页 1 2 下一页 尾页 2/2/2
    】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
    上一篇Python 大数据量文本文件高效解析.. 下一篇数据分析之pandas的使用

    最新文章

    热门文章

    Hot 文章

    Python

    C 语言

    C++基础

    大数据基础

    linux编程基础

    C/C++面试题目