为什么在 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 中隐式检查是否为空? [关闭] 的相关文章

随机推荐

  • 是否可以从 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