首页 > 应用开发 > Python > Python编码风格篇:比较运算符
前几天有看到一篇 Flask 开发团队内部 Python 编码风格指南 ,里面有一段关于比较的规范觉得很有意思:
自己在写代码的时候很少去关注变量的比较要如何实现,基本都是直接使用 == 。今天就借此机会聊聊 Python 中的比较运算符。
== 和 != 是等值校验。
这两个运算符是我们最熟悉不过的比较运算符了。== 会根据魔术方法 __eq__ 检测左右两侧对象的值是否相等。
例如 x == y ,其实背后的操作是 x.__eq__(y)。
is 是身份校验。它将检测左右两侧是否为同一个对象。
同一个对象必须满足:
因此就不难理解为什么 is 和 is not 用于单例(singletons)比较了。
单例是一种设计模式,应用该模式的类只会生成一个实例。
单例模式保证了在程序的不同位置都可以且仅可以取到同一个对象实例:
not 是 Python 中的逻辑判断词,常用于布尔型 True 和 False。
not True -> False not False -> True
a = False # not a 为 True if not a: pass
a = 100 b = [1, 2, 3] # 元素 a 是否不在列表 b 中 if a not in b: pass
仅对值进行简单比较时可以使用 ==/!= 操作符:
a = 1 b = 2 if a == b: pass else: pass
is 用于比较单例,例如比较 None:
if a is None: pass if a is not None: pass
如果涉及布尔值 True/False 的判断,使用 not,不要直接与 True 或 False 比较:
a = False b = True # 正确的写法 if not a: pass if b: pass # 错误的写法 if a == False: pass
not 还可以用于判断元素是否在列表/字典中存在。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69923331/viewspace-2664863/ ,如需转载,请注明出处,否则将追究法律责任。