首页 > 编程语言 >Python 为什么要在 18 年前引入布尔类型?且与 C、C++ 和 Java 都不同?

Python 为什么要在 18 年前引入布尔类型?且与 C、C++ 和 Java 都不同?

时间:2022-10-12 18:05:11浏览次数:74  
标签:__ Java Python 18 int bool False True 布尔

花下猫语:在上一篇《​​Python 为什么能支持任意的真值判断?​​ 》文章中,我们分析了 Python 在真值判断时的底层实现,可以看出 Python 在对待布尔值时,采用了比较宽泛的态度。官方对此是怎么考虑的呢?

下面的文章是我刚翻译的 PEP-285,作者是 Python 之父 Guido van Rossum。这个 PEP 意义非常重大,Python 的 bool 类型就是从它开始引入的,而我在上篇文章中分析到的很多问题,都能在这篇十几年前的文档中找到解释!另外它还回应了比较典型的一些争议,值得大家了解下。

PEP标题: PEP 285 -- Adding a bool type

PEP作者: Guido van Rossum

创建日期: 2002-03-08

合入版本: 2.3

译者 :豌豆花下猫@Python猫公众号

PEP翻译计划 :​​https://github.com/chinesehuazhou/peps-cn​

概要

本 PEP 提议引入一个新的内置类型​​bool​​​,它将包含两个常量​​False​​​和​​True​​​。这个 bool 类型是 int 类型的直接子类型(在 C 中),并且在除了 repr() 和 str() 之外的大多数方面,它的值​​False​​​和​​True​​ 都将表现得像是 0 和 1(例如,False == 0 和 True == 1 都为真)。

所有在概念上需返回布尔结果的内置操作,都将更改为返回 False 或 True,而不再是 0 或 1,例如,比较操作、“not”运算和 isinstance() 之类的断言方法。

评审

我已经收集了太多太多的反馈意见,因此我宣布:评审阶段(review period)正式结束。 我今天吃的是中国菜,我的签语饼上写着:“Strong and bitter words indicate a weak cause.” 它使我想起了一些反对本 PEP 的帖子...

标签:__,Java,Python,18,int,bool,False,True,布尔
From: https://blog.51cto.com/u_14244765/5751241

相关文章

  • Python 为什么会有个奇怪的“...”对象?
    在写上一篇《​​Python为什么要有pass语句?​​》时,我想到一种特别的写法,很多人会把它当成pass语句的替代。在文章发布后,果然有三条留言提及了它。所谓特别的写法就是......
  • 汉源高科16GE+2GSFP机架式全千兆网管型工业以太网交换机18口全千兆二层网管型工业以太
    HY5700-752GX16GT机架式千兆网管型工业以太网交换机,提供16个10/100/1000M自适应以太网接口,4个100/1000M自适应SFP光口。HY5700-752GX16GT可以组建一个快速恢复的自愈环网,自......
  • Java中fail-fast与fail-safe机制
    fail-fast快速失败一个线程在读取集合种的数据时,另外一个线程在修改集合会导致fail-fastArrayListHashMap具备此机制Map<Integer,String>map=newHash......
  • Java数组05(数组相关应用)
    Arrays类:数组的工具类java.util.Arrays由于数组对象本身并没有什么方法可以供我们调用,但API中提供了Arrays供我们使用,从而可以对数据对象进行一些基本操作可以查......
  • Python 哈希函数
    1.hashlib模块实现了许多不同安全散列和消息摘要算法的通用接口。包括FIPS安全哈希算法SHA1,SHA224,SHA256,SHA384和SHA512以及RSA的MD5算法。如果您需要adler32或crc32哈......
  • Python定时任务框架APScheduler
    原文:https://blog.csdn.net/kobepaul123/article/details/123616575在日常工作中,如果想要简化工作流程实现办公自动化,那么几乎有大半的功能模块都需要使用定时任务,例如定......
  • java.class.path详解
    java中System.properties的一个属性“java.class.path”(系统类加载器加载字节码class的路径)的获取及详解:获取packagecom.yoyo.yotils.yoyo.system;importorg.apach......
  • java基础语法[01]
    一、注释注释不会被执行,是给写代码的人看的。是非常重要非常好的习惯。单行注释://多行注释:/**/文档注释:javadoc,/***/有兴趣可以搜:有趣的代码注释。......
  • windows+python更改pip国内镜像源
      C:\Users\baoshan\AppData\Roaming\pip pip.ini[global]index-url=https://pypi.tuna.tsinghua.edu.cn/simple/[install]trusted-host=pypi.tuna.tsinghua.e......
  • java 将字符串转成json和字符串转成json属组的方法
      开发中经常遇到将字符串转成json和字符串转成json属组的方法,网上搜到的方法,好多都是不好用的,今天这里记录一下方便自己今后查看,也提供给需要的人。依赖:<!--处......