为什么在 Python 中隐式检查是否为空? [关闭]

2024-03-08

Python 的禅宗说显式优于隐式。

然而,检查集合 c 是否为空的 Pythonic 方法是:

if not c:
    # ...

检查集合是否不为空,如下所示:

if c:
    # ...

对于任何可能具有“零”或“空”的东西(元组、整数、字符串、无等)也是如此

这样做的目的是什么?如果我不这样做,我的代码会出现更多错误吗?或者它是否支持更多用例(即:某种多态性),因为人们可以覆盖这些布尔强制?


这种最佳实践并非没有道理。

测试时if object:你基本上是在调用对象__bool__方法,可以根据对象行为重写和实现。

例如,__bool__集合方法(__nonzero__在Python 2)中,将根据集合是否为空返回一个布尔值。

(参考:http://docs.python.org/reference/datamodel.html http://docs.python.org/reference/datamodel.html)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么在 Python 中隐式检查是否为空? [关闭] 的相关文章

  • 如何替换 Pandas Dataframe 中不在列表中的所有值? [复制]

    这个问题在这里已经有答案了 我有一个值列表 如何替换 Dataframe 列中不在给定值列表中的所有值 例如 gt gt gt df pd DataFrame D ND D garbage columns S gt gt gt df S 0
  • Python - 比较同一字典中的值

    我有一本字典 d Trump MAGA FollowTheMoney Clinton dems Clinton Stein FollowTheMoney Atlanta 我想删除字符串列表中的重复字符串 该字符串是键的值 对于这个例子 期望
  • matplotlib 图中点的标签

    所以这是一个关于已发布的解决方案的问题 我试图在我拥有的 matplotlib 散点图中的点上放置一些数据标签 我试图在这里模仿解决方案 是否有与 MATLAB 的 datacursormode 等效的 matplotlib https s
  • pandas DataFrame.join 的运行时间是多少(大“O”顺序)?

    这个问题更具概念性 理论性 与非常大的数据集的运行时间有关 所以我很抱歉没有一个最小的例子来展示 我有一堆来自两个不同传感器的数据帧 我需要最终将它们连接成两个very来自两个不同传感器的大数据帧 df snsr1 and df snsr2
  • 为什么 web2py 在启动时崩溃?

    我正在尝试让 web2py 在 Ubuntu 机器上运行 所有文档似乎都表明要在 nix 系统上运行它 您需要下载源代码并执行以下操作 蟒蛇 web2py py 我抓住了source http www web2py com examples
  • MongoEngine 查询具有以列表中指定的前缀开头的属性的对象的列表

    我需要在 Mongo 数据库中查询具有以列表中任何前缀开头的特定属性的元素 现在我有一段这样的代码 query mymodel terms term in query terms 并且这会匹配在列表 term 上有一个项目的对象 该列表中的
  • GUI(输入和输出矩阵)?

    我需要创建一个 GUI 将数据输入到矩阵或表格中并读取此表单数据 完美的解决方案是限制输入表单仅允许float 例如 A 1 02 0 25 0 30 0 515 0 41 1 13 0 15 1 555 0 25 0 14 1 21 2
  • Python 3:将字符串转换为变量[重复]

    这个问题在这里已经有答案了 我正在从 txt 文件读取文本 并且需要使用我读取的数据之一作为类实例的变量 class Sports def init self players 0 location name self players pla
  • Java 和 Python 可以在同一个应用程序中共存吗?

    我需要一个 Java 实例直接从 Python 实例数据存储中获取数据 我不知道这是否可能 数据存储是否透明 唯一 或者每个实例 如果它们确实可以共存 都有其单独的数据存储 总结一下 Java 应用程序如何从 Python 应用程序的数据存
  • 未知错误:Chrome 无法启动:异常退出

    当我使用 chromedriver 对 Selenium 运行测试时 出现此错误 selenium common exceptions WebDriverException Message unknown error Chrome fail
  • 当字段是数字时怎么说...在 mongodb 中匹配?

    所以我的结果中有一个名为 城市 的字段 结果已损坏 有时它是一个实际名称 有时它是一个数字 以下代码显示所有记录 db zips aggregate project city substr city 0 1 sort city 1 我需要修
  • 尽管我已在 python ctypes 中设置了信号处理程序,但并未调用它

    我尝试过使用 sigaction 和 ctypes 设置信号处理程序 我知道它可以与python中的信号模块一起使用 但我想尝试学习 当我向该进程发送 SIGTERM 时 但它没有调用我设置的处理程序 只打印 终止 为什么它不调用处理程序
  • Pandas 组合不同索引的数据帧

    我有两个数据框df 1 and df 2具有不同的索引和列 但是 有一些索引和列重叠 我创建了一个数据框df索引和列的并集 因此不存在重复的索引或列 我想填写数据框df通过以下方式 for x in df index for y in df
  • Django REST Framework - CurrentUserDefault 使用

    我正在尝试使用CurrentUserDefault一个序列化器的类 user serializers HiddenField default serializers CurrentUserDefault 文档说 为了使用它 请求 必须作为
  • 将 Matlab 的 datenum 格式转换为 Python

    我刚刚开始从 Matlab 迁移到 Python 2 7 在读取 mat 文件时遇到一些问题 时间信息以 Matlab 的日期数字格式存储 对于那些不熟悉它的人 日期序列号将日历日期表示为自固定基准日期以来已经过去的天数 在 MATLAB
  • 如何以正确的方式为独立的Python应用程序制作setup.py?

    我读过几个类似的主题 但还没有成功 我觉得我错过或误解了一些基本的事情 这就是我失败的原因 我有一个用 python 编写的 应用程序 我想在标准 setup py 的帮助下进行部署 由于功能复杂 它由不同的 python 模块组成 但单独
  • 如果 PyPy 快 6.3 倍,为什么我不应该使用 PyPy 而不是 CPython?

    我已经听到很多关于PyPy http en wikipedia org wiki PyPy项目 他们声称它比现有技术快 6 3 倍CPython http en wikipedia org wiki CPython口译员开启他们的网站 ht
  • 制作一份 Python 文档的 PDF 文件

    Python 官方网站提供 PDF 文档下载 但它们是按章节分隔的 我下载了源代码并构建了 PDF 文档 这些文档也是单独的 PDF 我怎么能够从源代码中的 Makefile 构建一个 PDF 文件 我认为这样阅读起来会更方便 如果连接单独
  • 将索引与值交换的最快方法

    考虑pd Series s s pd Series list abcdefghij list ABCDEFGHIJ s A a B b C c D d E e F f G g H h I i J j dtype object 交换索引和值并
  • JSON:TypeError:Decimal('34.3')不是JSON可序列化的[重复]

    这个问题在这里已经有答案了 我正在运行一个 SQL 查询 它返回一个小数列表 当我尝试将其转换为 JSON 时 出现类型错误 查询 res db execute SELECT CAST SUM r SalesVolume 1000 0 AS

随机推荐

  • 是否可以从 Java Servlet API 发送到相对路径的重定向?

    我想将相对重定向 到原始请求域和端口 发送到浏览器 像这样 Location app But Jetty自动发送完整的绝对路径 Location http 10 0 2 17 9080 app The 文档 http docs oracle
  • 可以在Rails中为belongs_to关联添加别名吗?

    我有一个模型belongs to协会 class Car lt ActiveRecord Base belongs to vendor end 所以我可以打电话car vendor 但我也想打电话car company 所以 我有以下内容
  • 如何编写将表达式绑定到名称的指令“ng-let”

    我想编写一个镜像 ng repeat 但将名称绑定到单个变量的指令 所以不要写这样的东西 ng repeat summary in data accounts all summaryAsArray 你可以写这样的东西 ng let summ
  • 使用表标签的嵌套重复器

    我正在使用以下代码尝试在 WinJS 中使用嵌套转发器 table class grid thead tr th class groupHeader th tr thead tbody tbody table
  • Unix Bash Shell 编程(如果目录存在)

    所以我试图进入 bash shell 脚本中的 if 语句 但我认为我做错了什么 无论如何 这是我的示例代码 bin bash read sd if d tmp sd then echo That directory exists else
  • LocalSystem vs. System vs. Local System Windows 系统帐户 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我对 Windows 内置帐户的 MS 文档感到完全困惑 SQL Server 2008 R2 在线文档 设置 Windows 服务帐户
  • Selenium:如何获取html页面代码的影子根中的元素?

    我需要获取按钮的元素 以使用 selenium 将 MetaMask 钱包连接到多边形网桥 the button I need to find But the button as I understand it is hidden in s
  • 如何强制NetStream创建关键帧?

    我创建了一个视频流录制应用程序 除了录制的 FLV 有点损坏之外 该应用程序运行良好 如果我在 VLC 播放器中打开 FLV 一切都是绿色的 但当发生更改时会变得 干净 尤其是在视频的开头是分手 我用的是Red5 1 0 对于预先录制的流
  • RDS实例CPU利用率

    我的 amazon mysql 大型 RDS 实例的 CPU 利用率非常高 大约 70 没有任何真正的原因 如何找到哪个查询或进程正在损害我的实例 thanks 标准方法是检查SHOW PROCESSLIST or SHOW ENGINE
  • Google Drive API,上传文件 [Python]

    我使用 API 将备份从服务器上传到我的谷歌驱动器 授权顺利通过 文件已上传 但文件未出现在列表中 代码 import httplib2 import pprint from apiclient discovery import build
  • AttributeError:“识别器”对象没有属性“识别”

    我正在尝试 Python 中的语音识别模块 版本 3 5 并收到以下错误 AttributeError 识别器 对象没有属性 识别 这是我使用的代码 import pyaudio import speech recognition as s
  • 使用 RMySQL 的 UTF8 编码

    我正在尝试从 mysql 数据库查询数据 当然 其中包含一些字符串 对于连接和数据检索 我在 R 中使用 RMySQL 效果很好 除了一件事 我正在检索的字符串似乎不是 utf8 格式的 但我需要这个 因为这些字符串中有一些德语 Umlau
  • Python:检查两个列表之间字符串的部分匹配

    我有两个列表 如下所示 c John query 989877 forcast Tamm isl My name is Anne Query 989877 John Tamm Ju 我想检查其中的每一项isl中的每一项c这样我就可以得到所有
  • Android 上的 RTSP 客户端实现

    我看到很多与此相关的问题 尽管如此 我认为我的答案还没有 我想在 Android 上使用已编码的 RTSP 客户端与 MediaCodec 一起使用 以便捕获 H264 中的 RTSP 流 然后解码并显示它 我使用了 VideoView 和
  • 在仅限 iPhone 的应用程序中播放 YouTube 视频 - 失去控制

    下面的代码用于在视图上放置一个小的 WebView 以便用户可以点击它 视频会以全屏模式打开并播放 所有这些都有效 但游戏 4 秒后控件就会消失并且不会重新出现 点击 旋转 视频结束后 控件会重新出现 并且 完成 按钮变为可用 然而 一旦
  • 将 CallByName 与表单字段的“事件接收器”结合使用

    我的应用程序中的几个表单上都有文本框 这些文本框具有 缩放 功能 双击它们 会出现一个弹出表单 您可以根据自己的喜好调整大小和编辑内容 这是通过类模块 appZoomText 进行编码的 该模块充当文本框事件的 事件接收器 我正在尝试创建一
  • 想要创建一个 Dictionary 类型的自定义类

    我想创建一个基本上包装字典的自定义类 我想向其添加一个名为 Name 的属性 I tried public class MyDictionary
  • Chrome 声称简单函数未定义

    我在空闲时间制作了一个莫尔斯电码翻译器 并且第一次在 Chrome 中尝试了它 当 的时候translate 函数被调用 Chrome 抛出异常Uncaught TypeError translate is not a function a
  • 如何将“$modalInstance”注入控制器?

    在我的应用程序中 当我发现用户未登录后 我想打开一个模式对话框 when showtask id templateUrl Home Template showtask resolve ShowTaskCtrl resolve access
  • 为什么在 Python 中隐式检查是否为空? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi