为什么 True 和 False 在 Python 3 中改为关键字

2024-03-11

在Python 2中,我们可以重新分配True and False(但不是None),但所有三个(True, False, and None) 被视为内置变量。然而,在 Py3k 中,这三个都被更改为关键字the docs http://docs.python.org/3.0/whatsnew/3.0.html.

根据我自己的猜测,我只能猜测这是为了防止类似的恶作剧this https://stackoverflow.com/questions/2055029/why-cant-python-handle-true-false-values-as-i-expect是从旧的派生出来的True, False = False, True恶作剧。然而,在 Python 2.7.5 中,也许更早的版本中,诸如None = 3哪个重新分配None raised SyntaxError: cannot assign to None.

从语义上讲,我不相信True, False, and None是关键字,因为它们最终是语义文字,这就是 Java 所做的。我检查了 PEP 0(索引),但找不到解释它们更改原因的 PEP。

是否有性能优势或其他原因使它们成为关键字而不是文字或将它们特殊化None在 python2 中?


可能是因为Python 2.6不仅允许True = False但也允许你说一些有趣的话,比如:

__builtin__.True = False

这会重置True to False对于整个过程。它可能会导致非常有趣的事情发生:

>>> import __builtin__
>>> __builtin__.True = False
>>> True
False
>>> False
False
>>> __builtin__.False = True
>>> True
False
>>> False
False

EDIT: 正如所指出的Mike https://stackoverflow.com/users/77939/mike, the Python 维基 http://wiki.python.org/moin/Python3.0还规定了以下内容核心语言变化:

  • Make True and False keywords.
    • 原因:使分配给他们变得不可能。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 True 和 False 在 Python 3 中改为关键字 的相关文章

  • Python Numpy TypeError:输入类型不支持 ufunc 'isfinite'

    这是我的代码 def topK dataMat sensitivity meanVals np mean dataMat axis 0 meanRemoved dataMat meanVals covMat np cov meanRemov
  • 将 python scikit learn 模型导出到 pmml

    我想将 python scikit learn 模型导出到 PMML 中 什么 python 包最适合 我读到Augustus https github com opendatagroup augustus 但我找不到任何使用 scikit
  • 为什么 Dash 在上传文件时会出现解析错误?

    上传 Excel 或 CSV 会导致错误 我遵循了 Dash 演示 但是当我尝试扩展它来执行绘图之类的操作时 它就不起作用了 我不想只显示一张桌子 Dash Table 函数已更新 因此之前使用 Dash Table Experiments
  • 使用 Python 连接从 FTP 检索文件

    我构建了这个简单的工具来暴力破解并连接到 ftp 服务器 import socket import ftplib from ftplib import FTP port 21 ip 192 168 1 108 file1 passwords
  • 如何从 python 脚本更改 python 文件中的变量值

    我目前有一个 python 文件 其中包含一堆带有值的全局变量 我想从一个单独的 python 脚本永久更改这些值 我尝试过 setattr 等 但似乎不起作用 有没有办法做到这一点 简短的回答是 不 不值得这么麻烦 听起来您正在尝试创建一
  • 多级QTreeView

    我很难理解如何使用 QTreeView 和 QStandardItemModel 设置多级 QTree 这是我所拥有的 from PySide QtGui import import sys class MainFrame QWidget
  • 混淆矩阵错误“分类指标无法处理多标签指标和多类目标的混合”

    我得到了 Classification metrics can t handle a mix of multilabel indicator and multiclass targets 当我尝试使用混淆矩阵时出错 我正在做我的第一个深度学
  • 使用底图和Python在地图中绘制海洋

    我正在绘制此处提供的 netCDF 文件 https goo gl QyUI4J https goo gl QyUI4J Using the code below the map looks like this 然而 我希望海洋是白色的 更
  • 在用户提交的正则表达式中查找捕获组

    我有一个 python 应用程序 需要处理用户提交的正则表达式 出于性能考虑 我想禁止捕获组和反向引用 我的想法是使用另一个正则表达式来验证用户提交的正则表达式不包含任何命名或未命名的组捕获 如下所示 def validate user r
  • 有没有办法在Python中调用子类定义的方法?

    The init 方法定义了创建类的实例时要执行的操作 创建子类时我可以做类似的事情吗 假设我有抽象类Entity class Entity def onsubclasscreation cls for var in cls annotat
  • 使用 pymongo 查询空字段

    我想使用 python 查询 mongo 中的空字段 但是它很难处理单词 null 或 false 它要么给我错误 它们在 python 中未定义 要么在 mongo 中搜索字符串 null 和 false 这两种情况我都不希望发生 col
  • Python 字符串参数解析

    我正在 python 中使用 cmd 类 它将所有参数作为一个大字符串传递给我 将此 arg 字符串标记为 args 数组的最佳方法是什么 Example args arg arg1 arg2 with quotes arg4 arg5 1
  • 结束一天(日期时间)的最优雅的方式是什么?

    我目前正在编写一些报告代码 允许用户选择指定日期范围 它的工作方式 简化 是 用户 可选 指定年份 用户 可选 指定月份 用户 可选 指定一天 这是一个代码片段 以及描述我想要的内容的注释like to do from datetime i
  • NumPy 中 exp(-x^2) 的快速傅立叶变换

    I have to calculate numerically the 2nd derivative of a Gaussian function I ve read every question on this topic here bu
  • 如何使用Django模板作为组件?

    我有 5 个模板 index html detail html tag html login html register html and a 基本 html 所有 5 个模板都会扩展基本 html 索引 html 详细信息 html 标签
  • 如何通过pygit2获取当前签出的Git分支名称?

    这个问题应该与 如何获取Git中当前的分支名称 https stackoverflow com questions 6245570 how to get current branch name in git 获取 git 当前分支 标签名称
  • 分别计算男女宿舍

    我想要的结果是这样的 males 1990 Q1 value Q2 value Q3 Value Q4 Value females Q1 value Q2 value Q3 Value Q4 value 如果任何值不存在则默认值 0 imp
  • Python 中的“lambda”是什么意思,最简单的使用方法是什么?

    您能否给出一个示例和其他示例来说明何时以及何时不使用 Lambda 我的书给了我一些例子 但它们很令人困惑 拉姆达 起源于拉姆达演算 http en wikipedia org wiki Lambda calculus和 AFAIK 首先实
  • python字符串包含双引号字符

    我的输入字符串由字符组成 包括双引号和单引号 和 B SS JU PQ AD DDSFD ABD E J 但是 当我从文本文件打开上述输入并打印它时 第三行中的双引号 被打印为 xe2 x80 x9d 我的目标是进行简单的字符计数 B 2
  • 如何加速Python循环

    我查看了几个网站上的一些讨论 但没有一个给我解决方案 这段代码运行时间超过5秒 for i in xrange 100000000 pass 我正在研究整数优化问题 我必须使用O n log n 算法编辑 O n 4 算法 其中n代表矩阵的

随机推荐

  • 在 WooCommerce 中的产品 (Schema.org) 的结构化数据中添加 ean 代码 (gtin)

    我使用此代码片段在 Woocommerce 的产品架构中显示 gtin 的 ean 值 add filter woocommerce structured data product filter woocommerce structured
  • 将类实例存储到文件/数据库的最佳方法

    将类的实例存储到文件 数据库的最佳方法是什么 我们有一个名为 Command 的基类和大量派生类 用户通过向图形设计器添加命令来创建这些类的实例 他们可以在哪里配置它们 设置属性 然后我们需要一种方法将这些 命令 存储到文件中而不丢失 任何
  • 如何在opencv 4.1.0中实现LSD

    我在我的开放简历项目中实施了 LSD 一切都很顺利 直到我将 opencv 版本从 4 0 0 升级到 4 1 0 现在我得到的错误是 cv2 error OpenCV 4 1 0 io opencv modules imgproc src
  • 是否可以在 Android Studio 中本地调试 Google Play 的应用内结算?

    我在本地测试应用内订阅产品时遇到此错误 需要进行身份验证 您需要登录您的谷歌帐户 我能够检查该产品的库存 但我是否也应该能够购买它 有很多关于为什么会发生此错误的帖子 我认为这些帖子已得到解决 该产品在测试版渠道中发布 并启用应用内计费 我
  • Python,通过提取字符和数字子串来解析字符串

    我有一个字符串 是由某种机器学习算法产生的 通常由多行组成 在开头和结尾处可以有一些不包含任何字符 空格除外 的行 并且在它们之间应该有 2 行 每行包含一个单词 后跟一些数字和 有时 其他字符 像这样的东西 first word 3 5
  • .NET 代码混淆真的值得吗?

    据我所知 代码混淆其实并不难 破解 它只会推迟不可避免的事情 那么 它的目的是什么 如果有人真的想窃取您的资源 他们可以 如果有人出于无害 有用的目的需要查看您的源代码 他们就不能 您可能不应该在代码中存储任何敏感内容 因此这不应该成为问题
  • OFFSET 命令附近的语法不正确

    为什么这不起作用并给我一个 偏移命令附近的语法不正确 错误 SELECT o orderdate o orderid o empid o custid FROM Sales Orders o ORDER BY o orderdate o o
  • 实时绘制 pandas 数据框

    我是新来的matplotlib并尝试显示我通过函数 read API 从 api 下载的三个变量的最后一小时数据的实时图 数据位于带有 DateTimeIndex 的 pandas 数据框中 例如 In dframe head Out A
  • 如何获取ContainerRequest中的会话对象可以使用注释@RolesAllowed(Role_user)?

    我正在使用 App Engine 和 Jersey 构建一个应用程序 我想使用注释 RolesAllowed Role user 谁允许在请求中创建过滤器 问题是我们需要配置类SecurityContextFilter 我的目标是获得id存
  • 编译 Lua - 创建 .so 文件?

    我正在 Centos 6 5 上编译 Lua 5 2 3 编译 安装工作正常 但是 我还需要编译另一个程序的开发库 我通常会通过这样做来安装它们 yum install lua devel 问题是安装 Lua 5 1 共享库 而不是 5 2
  • 是否可以在android的上下文菜单(系统菜单)中添加一些项目

    当我输入一些文本并按住它时 上下文菜单会显示剪切 复制 选择文本等项目 有什么方法可以将我自己的自定义项目添加到此上下文菜单中吗 我不知道这件事是如何工作的 但我想应该可以在清单中注册一些东西 就像注册活动和广播一样 Thanks 欢迎任何
  • Android 房间@Relation 左加入

    假设我有两个实体 问题和答案 它们具有一对多关系 每个问题可能有 0 n 个答案 它们定义为 Entity tableName questions data class Question PrimaryKey val id Long val
  • 在 qt linux 中保存配置

    我为Linux编写了一个qt应用程序 该应用程序应该在启动时运行 我 用桌面条目做的 但我需要它更复杂 用户应该检查一个复选框 以便选择应用程序是否在启动时运行 我该如何保存他的偏好 该应用程序之前是为 Windows 编写的 并且保存在注
  • 如何更改 AlertDialog 的主题

    我想知道是否有人可以帮助我 我正在尝试创建一个自定义的 AlertDialog 为了做到这一点 我在 styles xml 中添加了以下代码行
  • 创建一个圆形的 Java Swing JFrame?

    如果可能的话如何制作一个圆形的JFrame Oracle 有一个关于这个主题的很好的教程 https docs oracle com javase tutorial uiswing misc trans shape windows html
  • 如何在 Play 2.0 (Scala) 中使用 DATABSE_URL 进行与 PostgreSQL 9.1 和 Heroku 的本地连接?

    我使用 Play 在 OSX Lion 10 7 4 上使用本地 PostgreSQL 9 1 开发了第一个 Web 应用程序 框架2 0 3 我从conf application conf 相对于应用程序目录 中定义的数据库连接开始 db
  • 如何在Windows下使用特定的server.xml启动Tomcat?

    有时我想使用特殊配置启动 Tomcat 6 而不是使用 server xml 所以我创建了另一个名为的 xml 文件server test xml 现在我想告诉tomcat使用这个配置 这是怎么做到的 我在网上搜索几乎找不到任何东西 只有这
  • R:向 Plotly 添加搜索栏

    我在这里找到了这个 stackoverflow 帖子 从浏览器中突出显示 查找散点图中的数据点 https stackoverflow com questions 42507096 highlight find data points in
  • C++ 作为标准是否禁止在各个类实例中存储成员函数?

    在 C 实现中 通常代码不存储 以任何形式 在类实例内 代码段与对象等不在同一内存空间 这意味着成员函数不会 存储 在类实例内部 但当有人问了一个问题 https stackoverflow com q 21316374 560648对此
  • 为什么 True 和 False 在 Python 3 中改为关键字

    在Python 2中 我们可以重新分配True and False 但不是None 但所有三个 True False and None 被视为内置变量 然而 在 Py3k 中 这三个都被更改为关键字the docs http docs py