当前位置: 首页 > 知识库问答 >
问题:

将变量与无进行比较的正确方法

伍弘盛
2023-03-14

测试NoneType变量的常用方法是检查它是否引用Nonesingletone:

test_var is None

根据PEP-8,建议将此方法作为检查None的唯一方法:

与None之类的单例进行比较时,应始终使用is或is,永远不要使用相等运算符

虽然有时我发现以下测试在不同的来源:

isinstance(test, type(None))

这种方式看起来不错,但是我不太明白为什么简单易读的结构可以被is实例所取代。它在某些情况下更有用,还是指代码风格?

UPD:使用的唯一非类型检查是instance我发现非常有用(到目前为止):

isinstance(None, (NoneType, str, float))

共有1个答案

濮阳祯
2023-03-14

不,没有理由使用这种结构。

您不能子类NoneType。唯一通过该测试的对象是单例。这一行可能是由不知道这一点的人写的,他们认为他们也需要测试子类。

 类似资料:
  • 我想用Java做一个程序来比较两个三角形。比较角度的顺序无关紧要,我知道我可以用语句来做,但有没有其他更有效的方法来比较3个角度和另外3个角度,因为三角形旋转并不重要,因为完全相同?(Java语言)

  • 我一直在试图理解是否有可能使用类似于我在下面演示的if语句。我的理解是不是? 有了这段代码,我只得到数字

  • 问题内容: 我有以下代码,并收到上述错误。由于我是python的新手,因此无法理解这里的语法以及如何解决错误: 问题答案: 有一种从日期时间转换为日期的方法。 要进行相反的转换,可以使用此功能

  • 问题内容: 作业:剪刀石头布游戏。 我创建了一个枚举: 从中我想比较各种价值观来决定谁是计算机还是人。设置值就可以了,并且比较也可以正常工作(纸张覆盖岩石,岩石压碎剪刀,剪刀切碎纸张)。但是,我不能束手无策。只要有平局,该用户即被宣布为获胜者。 唉唉......废话......这将澄清:是一个具有价值,或。我无法用比较来,正如你可以看到下面,是铸造类型从我的。 我猜这是一个不等于或无法匹配的问题,

  • 有没有更简洁的方法来做到这一点? 编辑:我的问题确实是重复的。对于任何阅读这篇文章的人,我建议再看看其他的线程--它们有一些好的东西。

  • 问题内容: Python如何将多个变量与一个值进行比较?,例如: 我希望返回一个列表: 问题答案: 方法1 方法2 使用元组或列表 方法3 最好是使用set集合