Python 在if语句中测试None

Python 在if语句中测试None,python,Python,如果对象为无,则使用与如果对象不是,则使用有什么区别 因此,当我在做一些编码时,我在QListWidget中弄乱了信号,在一个选择实例中,它向我返回了2个信号,其中返回了2个对象——QListWidgetItem和None 为了处理None返回,我使用了if object is None,但我被告知if not object会更好。即使如此,使用2个if中的任何一个似乎仍然可以让我获得相同的结果 关于何时使用这两种方法,是否有更好的情况?非对象在对象有任何错误值时为真,例如0或错误 如果事先知道

如果对象为无,则使用
与如果对象不是,则使用
有什么区别

因此,当我在做一些编码时,我在QListWidget中弄乱了信号,在一个选择实例中,它向我返回了2个信号,其中返回了2个对象——QListWidgetItem和None

为了处理None返回,我使用了
if object is None
,但我被告知
if not object
会更好。即使如此,使用2个
if
中的任何一个似乎仍然可以让我获得相同的结果


关于何时使用这两种方法,是否有更好的情况?

非对象
对象
有任何错误值时为真,例如
0
错误

如果事先知道变量包含
QListWidgetItem
None
,则
None
是唯一的错误可能性,因此
If not object:
是编写条件的更简单方法


在其他情况下,你只需要小心。考虑一个变量,它可以包含一个数字或<代码>没有< /代码>。由于没有考虑到数字可能是
0

非对象的可能性,我看到了许多错误。当
对象
有任何假值时,例如
0
,则
为真

如果事先知道变量包含
QListWidgetItem
None
,则
None
是唯一的错误可能性,因此
If not object:
是编写条件的更简单方法


在其他情况下,你只需要小心。考虑一个变量,它可以包含一个数字或<代码>没有< /代码>。由于没有考虑数字可能是
0

not object
如果object是
0
False
,我看到了很多错误,等等。有些事情是错误的,它会在
时触发,因为只有
非对象
如果对象是
0
,则为真,等等。有些事情是错误的,会在
not
上触发,因为只有
None
None
,所以我想我可以假设这是一个简化的问题吗?所以我想我可以假设这是一个简化的问题吗?