Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么语法更适合python!=还是不是?_Python - Fatal编程技术网

什么语法更适合python!=还是不是?

什么语法更适合python!=还是不是?,python,Python,例如: match = re.search('...', str, re.IGNORECASE) if match is not None: pass # or if match != None: pass 什么更好?来自: 与None之类的单例进行比较时,应始终使用is或is,永远不要使用相等运算符 发件人: 与None之类的单例进行比较时,应始终使用is或is,永远不要使用相等运算符 两者都不是更好的,因为它们的行为不同。is是一个标识运算符,因此只有在检查对象是否具有相

例如:

match = re.search('...', str, re.IGNORECASE)
if match is not None:
    pass

# or
if match != None:
    pass
什么更好?

来自:

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

发件人:

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


两者都不是更好的,因为它们的行为不同。is是一个标识运算符,因此只有在检查对象是否具有相同的内存地址单例(如None Qualified)时才应使用它。注意'hello'='hello',但是'hello'不是'hello'@polvoazul-实际上,这取决于您的python实现。在Cpython中,“hello”通常是“hello”,但这并不是保证的行为,所以你不应该依赖它-或者,您可以避免所有问题,如果不匹配,则执行哪个将评估为真,因为boolNone是False@wnnmaw但是,如果比赛将有位置0?顺便说一句,我应该使用if-match:在我的例子中,对吗?两者都不是更好的,因为它们在行为上不同。is是一个标识运算符,因此只有在检查对象是否具有相同的内存地址单例(如None-qualify)时才应该使用它。注意'hello'='hello',但是'hello'不是'hello'@polvoazul-实际上,这取决于您的python实现。在Cpython中,“hello”通常是“hello”,但这并不是保证的行为,所以你不应该依赖它-或者,您可以避免所有问题,如果不匹配,则执行哪个将评估为真,因为boolNone是False@wnnmaw但是,如果比赛将有位置0?顺便说一句,我应该使用if-match:在我的情况下,对吗?哇。。好的,非常感谢@你可以创建自己的单件,如果添加到你的答案中,可能会更好,以免它被不同的解释。哇。。好的,非常感谢@Aronhall您可以创建自己的单例,如果添加到您的答案中,可能会更好,以免被不同的解释。