“如果x”与“如果x不为无”之间的区别

发布于 2021-01-29 18:15:44

看起来“ if x”几乎像是较长的“ if x is None”语法的简写。它们在功能上是相同的,还是在给定x值的情况下两者的评估结果不同?

我认为行为在所有Python实现中也应该是相同的-但是,如果存在细微的差异,那真是太好了。

关注者
0
被浏览
43
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    在以下情况下:

    test = False 
    test = "" 
    test = 0
    test = 0.0 
    test = []
    test = () 
    test = {} 
    test = set()
    

    if测试将有所不同:

    if test: #False
    
    if test is not None: #True
    

    之所以如此,是因为is测试身份,含义

    test is not None
    

    相当于

    id(test) == id(None) #False
    

    因此

    (test is not None) is (id(test) != id(None)) #True
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看